2012-04-26 14 views
21


オンラインクイズ用のWebページを作成したいと思います。クイズを取っている人がタブを変更したり、ブラウザを最小限にしなくても新しいウィンドウを開くと、他のウィンドウ/タブからの回答を見て、クイズが止まるはずです。どうすればいいですか?
P.S:新しいHTML5の新機能ではありません。現在、すべての主要なブラウザでサポートされています。ユーザーがタブを変更したかどうかを検出するJavascript

+1

は限りJavascriptを使用して検出することができます! – Maxsteel

+0

別のブラウザウィンドウで発生した場合は検出されません。 –

答えて

36

を参照してください。それは、このから引用し

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

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

だろうjQueryので

SO答え:https://stackoverflow.com/a/1760268/680578

+1

ウィンドウにフォーカスを失っただけでも起動しますが、ウィンドウは引き続き表示されます。 – Matt

+1

クイズウィンドウを最小限にすることなく、ユーザーが新しいウィンドウ/ブラウザを起動するかどうかを検出できますか? – Maxsteel

+0

新しいポップアップが発生した場合、現在のウィンドウにフォーカスが失われますが、そこにはありませんか? – Kristian

14

これをサポートするブラウザをターゲットにしている場合は、HTML5で利用可能なページ表示APIを使用できます。それは、タブの変化、つまり、可視性の変化を直接検出するわけではありません。タブの変更が含まれます(これに限定されません)。

は、タブやウィンドウはウィンドウにブラー/フォーカスイベントリスナーを取り付けることにより、アクティブであるかどうかを判断することができますhttps://developer.mozilla.org/en/DOM/Using_the_Page_Visibility_API

+0

これは便利なAPIですが、現時点(2015年3月6日)にはいくつかの制限があることに注意してください: 'Alt' +' Tab'(例えば、アプリの切り替えなど)はWindows/Chrome/IE10各ブラウザ内のタブを切り替えるだけでうまく動作します。 iOSでは、アプリの切り替えやデバイスのロック**によって可視性の変更が発生します。 – scunliffe

4
ダウン

ベストネイティブ関数の手、ないのjQueryを。

document.hasFocus 

ペンをチェックして、リンクに行き、コードペーンのタブに戻るときにどうなるかを確認します。

https://codepen.io/damianocel/pen/Yxxzdj

私は、新しいブラウザを開くようなウィンドウのフォーカスの変化を検出することができているかどうかを知りたかったknow.Whatとして まあ確かにタブで変更
+0

Opera、FireFox、Safari、Chromeで私の仕事をしているようです。他の人でテストしていない。 – Umair

関連する問題