オンラインクイズのウェブページを書いています。私が持っている基本的な要件は、ユーザーがブラウザを最小化せずにタブを変更したり、ニュース ウィンドウを開いた場合、つまり、ユーザーが他のウィンドウ/タブから回答を見ようとしている場合に、イベントを発生させる (クイズを停止する) 必要があるということです。どうやってやるの?
注:現在、すべての主要なブラウザでこの機能をサポートしたいので、あなたの回答に最先端の HTML5 機能を含めないようにしてください。
オンラインクイズのウェブページを書いています。私が持っている基本的な要件は、ユーザーがブラウザを最小化せずにタブを変更したり、ニュース ウィンドウを開いた場合、つまり、ユーザーが他のウィンドウ/タブから回答を見ようとしている場合に、イベントを発生させる (クイズを停止する) 必要があるということです。どうやってやるの?
注:現在、すべての主要なブラウザでこの機能をサポートしたいので、あなたの回答に最先端の HTML5 機能を含めないようにしてください。
ぼかし/フォーカスイベントリスナーをウィンドウにアタッチすることで、タブまたはウィンドウがアクティブかどうかを判断できます。
jQueryでは次のようになります
$(window).focus(function() {
//do something
});
$(window).blur(function() {
//do something
});
このSOの回答から引用:https ://stackoverflow.com/a/1760268/680578
これをサポートするブラウザをターゲットにしている場合は、HTML5で利用可能なPageVisibilityAPIを使用できます。たとえば、タブの変更を直接検出するのではなく、可視性の変更を検出します。これには、タブの変更が含まれます(ただし、これらに限定されません)。
https://developer.mozilla.org/en/DOM/Using_the_Page_Visibility_APIを参照してください