ユーザーが現在のブラウザタブから別のタブに切り替えるときを検出しようとしています。 window.onblurのリッスンは、ユーザーが別のウィンドウにフォーカスを切り替えるタイミングを検出するためにfirefoxでうまく機能しますが、ユーザーが別のタブに切り替えると起動しないようです。しかし、別のタブから問題のタブに切り替えると、onfocusが起動するように見えます。ユーザーが別のブラウザタブに切り替えると検出できますか?
ユーザーが現在のタブから離れたときに検出する方法はありますか?
ユーザーが現在のブラウザタブから別のタブに切り替えるときを検出しようとしています。 window.onblurのリッスンは、ユーザーが別のウィンドウにフォーカスを切り替えるタイミングを検出するためにfirefoxでうまく機能しますが、ユーザーが別のタブに切り替えると起動しないようです。しかし、別のタブから問題のタブに切り替えると、onfocusが起動するように見えます。ユーザーが別のブラウザタブに切り替えると検出できますか?
ユーザーが現在のタブから離れたときに検出する方法はありますか?
明らかに、Firefoxでは、イベントハンドラとしてwindow.onblur
の代わりにdocument.onBlur
を使用すると、タブの切り替えに使用できます。
うわー、それをするとは思わなかったけど、意味があります。ありがとう! –
このサンプルコードは私にとってはうまくいったようです。タブを切り替えたときにアラートボックスを表示するようにコードを編集しました(しないでください)。それは無限ループとなりました;-)タスクマネージャを使用してFFを閉じる必要がありました。
出典:http://www.thefutureoftheweb.com/blog/detect-browser-window-focus
function onBlur() {
document.body.className = 'blurred';
};
function onFocus(){
document.body.className = 'focused';
};
if (/*@[email protected]*/false) { // check for Internet Explorer
document.onfocusin = onFocus;
document.onfocusout = onBlur;
} else {
window.onfocus = onFocus;
window.onblur = onBlur;
}
Internet Explorerのこの魔法のチェックは何ですか? –
@maksymko - これは[条件付きコンパイル](http://msdn.microsoft.com/en-us/library/7kx09ct1%28v=VS.80%29.aspx)と呼ばれています。 –
**更新:** 2013年、すべての主要なブラウザは、いわゆる[可視性のAPI](https://developer.mozilla.org/en-USのサポートを提供/ docs/Web/Guide/User_experience/Using_the_Page_Visibility_API?redirectlocale = en-US&redirectslug = DOM/Using_the_Page_Visibility_API)。サンプルについてはこちらを参照してください:http://stackoverflow.com/a/19519701/603003 – ComFreek