ホームページ > ウェブフロントエンド > jsチュートリアル > JavaScript を使用して非アクティブなブラウザ Windows を検出するにはどうすればよいですか?

JavaScript を使用して非アクティブなブラウザ Windows を検出するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-12-20 17:11:10
オリジナル
1011 人が閲覧しました

How Can I Detect Inactive Browser Windows Using JavaScript?

非アクティブなブラウザ ウィンドウの検出

JavaScript を使用する場合、ブラウザ ウィンドウが現在非アクティブかどうかを判断すると有益です。これにより、ユーザーがページを表示していないときに不要なタスクを停止してパフォーマンスを最適化できます。

Page Visibility API の利用

ブラウザの非アクティブを検出する信頼性の高い方法は、次のとおりです。ページ可視性 API を介して。この API は、ページがユーザーに表示されるかどうかを示す「hidden」プロパティを提供します。

document.addEventListener("visibilitychange", onchange);
ログイン後にコピー

「hidden」プロパティが true の場合、ページは現在アクティブではありません。この情報を使用して、必要に応じて JavaScript 操作を一時停止または最小化できます。

ブラウザの互換性

Page Visibility API は、Chrome などの主要なブラウザの最新バージョンでサポートされています。 Internet Explorer、Firefox、Opera。

互換性がない場合のフォールバックブラウザ

Page Visibility API をサポートしていないブラウザの場合は、ぼかし/フォーカス メソッドにフォールバックできます。これらのイベントの信頼性は低くなりますが、基本的なレベルの検出を提供できます。

(function() {
  var hidden = "hidden";

  // ... (code for fallbacks to blur/focus)
})();
ログイン後にコピー

実装例

以下のコードは、Page Visibility API の使用方法を示しています。非アクティブなブラウザ ウィンドウを検出するフォールバック メソッド:

var hidden = "hidden";

if (hidden in document)
  document.addEventListener("visibilitychange", onchange);
else if ((hidden = "mozHidden") in document)
  document.addEventListener("mozvisibilitychange", onchange);
else if ((hidden = "webkitHidden") in document)
  document.addEventListener("webkitvisibilitychange", onchange);
else if ((hidden = "msHidden") in document)
  document.addEventListener("msvisibilitychange", onchange);
else if ("onfocusin" in document)
  document.onfocusin = document.onfocusout = onchange;
else
  window.onpageshow = window.onpagehide
    = window.onfocus = window.onblur = onchange;

function onchange(evt) {
  var v = "visible", h = "hidden",
      evtMap = {
        focus: v, focusin: v, pageshow: v, blur: h, focusout: h, pagehide: h
      };

  evt = evt || window.event;
  if (evt.type in evtMap)
    document.body.className = evtMap[evt.type];
  else
    document.body.className = this[hidden] ? "hidden" : "visible";
}

// Set the initial state
if (document[hidden] !== undefined)
  onchange({ type: document[hidden] ? "blur" : "focus" });
ログイン後にコピー

以上がJavaScript を使用して非アクティブなブラウザ Windows を検出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート