2017-08-06 69 views
-2

Q1:如何停止區間 let intervalId = setInterval(function(){ document.title = document.title == msg ? oldTitle : msg}, 1000);網站通知(JavaScript)的

,並和回原籍分頁標題?我試試

if (window.focus()) { clearInterval(intervalId); } 但這不行?

Q2:如何專注特定選項卡上的窗口,有什麼我可以除了使用window.focus()

Q3:打開鏈接在新窗口或如果已經聚焦到它打開 注:window.open('').focus() 總是打開新即使是有已經打開一個

請諮詢和非常感謝你提前

+0

您的問題是很不明確。你能提供一些你正在試圖用這些做些什麼嗎? – Nisarg

+0

味精? oldTitle:msg,可能是falsy或oldTitle ... –

+0

不,你不能強迫用戶回到你的網站,那是用戶的決定。看看通知部分的服務人員。 –

回答

0

所以我想你想切換不同的標題來回,當用戶不在窗口,然後設置選項卡當你的原始窗口ser回來了。

對於Q1,我認爲你應該聽取模糊和焦點事件來實現功能。

let intervalId = null; 
 
let original = 'original title'; 
 
let newMsg = 'new message'; 
 
// clear the timer when the user comes back 
 
window.addEventListener('focus', function() { 
 
    clearInterval(intervalId); 
 
}, false); 
 

 
// set the timer when the user goes away 
 
window.addEventListener('blur', function() { 
 
    intervalId = setInterval(function() { 
 
    document.title = document.title === original ? newMsg : original; 
 
    }, 1000) 
 
}, false);

`

對於Q2,引自MDN

它可能由於用戶的設置,並且不保證所述窗口該方法之前,最前面的回報。

對於Q3,window.open()也接受windowName參數,當你打開窗口中,您應該給予同樣的窗口名稱爲open()方法,所以當同窗戶是開着的,它可重點關注。

window.open('url','windowName').focus() 

下面是一個例子:

window.open('https://www.google.com', 'google-window').focus() 
+0

謝謝 Q1正常工作 Q2:我不明白這句話,請你能澄清 Q3:我嘗試,但缺少點什麼,請你能舉個例子 – Hadeel36

+0

Q2:這意味着你不能強迫用戶要專注於特定的選項卡,這取決於瀏覽器的行爲或用戶的設置。 –

+0

謝謝你這個更清楚,請問如果你能提供一個例子,請問第3個問題呢? – Hadeel36