ウィンドウがアクティブになったかどうか調べる


動作ブラウザ 【 IE:5.5  NN:-
Internet Explorer Netscape Navigator DreamPassport iCab
3.0x 4.0x 4.5 5.0x 5.5 2.0x 3.0x 4.0x 4.x 6.0 2 3 2.x
Windows × × - × × × × × × - × -
Macintosh × × × × - × × × × × - - ×
UNIX - - - - - × × × × × - - -
Dreamcast - - - - - - - - - - × × -

ポイント if (document.hasFocus()) fObj.value = "ウィンドウがアクティブです"; else fObj.value = "ウィンドウはディアクティブです";
説  明 ウィンドウがアクティブになったかどうか調べるには定期的にhasFocus()メソッドで状態を調べます。trueであればアクティブ、falseならアクティブではない事になります。イベントではないためsetTimeout()、setInterval()のタイマーを使って定期的に状態を調べます。
サンプル <html> <head> <title>ウィンドウがアクティブになったかどうか調べる</title> <script Language="JavaScript"><!-- function checkWindow() { fObj = document.myForm.myText; if (document.hasFocus()) fObj.value = "ウィンドウがアクティブです"; else fObj.value = "ウィンドウはディアクティブです"; } // --></script> </head> <body onLoad="setInterval('checkWindow()',250)"> <b>ウィンドウがアクティブになったかどうか調べる</b> <form name="myForm"> 状態<input type="text" name="myText"> </form> </body> </html>
補足説明 なし

■サンプルスクリプトを実行する >>実行
■各ブラウザでの動作結果を見る >>View!

写真素材 PIXTA