64


オンラインクイズのウェブページを書いています。私が持っている基本的な要件は、ユーザーがブラウザを最小化せずにタブを変更したり、ニュース ウィンドウを開いた場合、つまり、ユーザーが他のウィンドウ/タブから回答を見ようとしている場合に、イベントを発生させる (クイズを停止する) 必要があるということです。どうやってやるの?

注:現在、すべての主要なブラウザでこの機能をサポートしたいので、あなたの回答に最先端の HTML5 機能を含めないようにしてください。

4

8 に答える 8

78

ぼかし/フォーカスイベントリスナーをウィンドウにアタッチすることで、タブまたはウィンドウがアクティブかどうかを判断できます。

jQueryでは次のようになります

$(window).focus(function() {
    //do something
});

$(window).blur(function() {
    //do something
});

このSOの回答から引用:https ://stackoverflow.com/a/1760268/680578

于 2012-04-26T17:52:38.903 に答える
34

これをサポートするブラウザをターゲットにしている場合は、HTML5で利用可能なPageVisibilityAPIを使用できます。たとえば、タブの変更を直接検出するのではなく、可視性の変更を検出します。これには、タブの変更が含まれます(ただし、これらに限定されません)。

https://developer.mozilla.org/en/DOM/Using_the_Page_Visibility_APIを参照してください

于 2012-04-26T17:52:36.953 に答える