3

重複の可能性:
Javascript: ウィンドウが現在アクティブであることを検出する方法はありますか? (つまり、アクティブなタブ/ウィンドウに表示されています)

私は、病院のフロアで看護師などに重要な時間的制約のあるメッセージを表示する Web ベースのダッシュボードを持っています。問題は、ダッシュボードが開いていないか最小化されている場合、メッセージが表示されず、応答できないことです。現在、アプリが実行されている時間の割合を追跡しています (10 秒ごとに AJAX を介して新しいメッセージをポーリングするため、1 時間あたりのリクエスト数などを簡単に確認できます) が、アプリが最小化されたかどうかはわかりません。 .

1 つの方法はonfocus/を使用することonblurですが、これが展開されているコンピューターのほとんどはデュアル モニター マシンであり、多くの場合、一方の画面でダッシュボードを開いたままにし、もう一方の画面で臨床情報システムを使用するため、効果は限定的です。この状態は、フォーカス/ぼかしメソッドでは「非フォーカス」としてカウントされますが、私の統計では「オープン」としてカウントしたいと考えています。

ウィンドウの可視性を検出するためのアイデアはありますか? 小さなFlash「ピクセル」を含めて、それが表示されているかどうかを検出することを考えています-他のアイデアはありますか?

4

1 に答える 1

12

Page Visibility APIは、それをサポートするブラウザーで使用できます。そうでなければ、あなたが言ったように、onfocus/onblurでハックを使用する必要があります。

visible.jsは、すべてのブラウザーでこれを抽象化するライブラリです。ブラウザがPageVisibilityAPIをサポートしていない場合は、onblur/onfocusハックを使用します。

function isPageHidden(){
     return document.hidden || document.msHidden || document.webkitHidden || document.mozHidden;
 }

出典:http ://www.nczonline.net/blog/2011/08/09/introduction-to-the-page-visibility-api/

読む:https ://developer.mozilla.org/en-US/docs/DOM/Using_the_Page_Visibility_API

于 2012-09-21T19:51:07.947 に答える