2017-08-06 19 views
-2

Q1:インターバル let intervalId = setInterval(function(){ document.title = document.title == msg ? oldTitle : msg}, 1000);ウェブ通知(ジャバスクリプト)

と、バック原点タブのタイトルにを停止する方法は? 試してみます

if (window.focus()) { clearInterval(intervalId); } これは機能しませんか?

Q2:新しいウィンドウでリンクを開くか、すでに開いて ノートならば、それにフォーカス:window.open('').focus() は常に新しいを開くどのように私はwindow.focus()

Q3に加えて使用することができるものを、ウィンドウ内の特定のタブに集中します1

オープンがすでに存在していても、タブだから私は、ユーザーがウィンドウ内にないときに前後に別のタイトルを切り替えたいと仮定し、その後に設定アドバイスや事前

+0

あなたの質問は非常に不明確です。あなたはこれらで何をしようとしているのかについていくつかの文脈を提供できますか? – Nisarg

+0

msg? oldTitle:msgは、偽のか古いか... –

+0

そして、いいえ、あなたはあなたのサイトに戻ってユーザーを強制することはできません。通知部分のサービスワーカーを見てください。 –

答えて

0

にどうもありがとうございまし下さい元のウィンドウが開いたとき奴が戻ってくる。

Q1の場合、機能を実現するには、ぼかしとフォーカスイベントを聞く必要があります。 Q2については

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);

`

MDN

からの引用これは、原因ユーザーの設定に失敗する可能性があり、窓は、このメソッドの前に最前されることが保証されていません戻る。 Q3については

は、window.open()は、ウィンドウを開いたとき、あなたはopen()メソッドに同じウィンドウ名を与える必要がありますので、同じウィンドウが開いていたとき、それが集中することができ、windowNameパラメータを受け付けます。ここで

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

は一例です:

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

はありがとう Q1の仕事を正しく Q2:私はこの引用を理解していないよ、あなたはそれを Q3を明確にすることができますしてください:私はそれを試してみたが見つからない何かが、あなたは例を与えることができますしてください – Hadeel36

+0

Q2:それはあなたがユーザーを強制することはできません意味します特定のタブに焦点を当てるには、ブラウザの動作やユーザーの設定に依存します。 –

+0

ありがとうございましたこれはより明確です。例を挙げれば質問3はどうですか? – Hadeel36

関連する問題