[解決済み】ブラウザ/タブがアクティブかどうかを判断する方法 [重複]。
2022-04-16 16:21:35
質問
重複の可能性があります。
ブラウザウィンドウが現在アクティブでないことを検出する方法はありますか?
1秒ごとに呼び出される関数がありますが、これは現在のページがフォアグラウンドにある場合、つまりユーザーがブラウザを最小化したり他のタブに切り替えたりしていない場合にのみ実行したいのです。ユーザーが見ていなければ何の役にも立ちませんし、CPU負荷が高くなる可能性があるので、バックグラウンドでサイクルを浪費することだけはしたくありません。
JavaScriptでこれを伝える方法をご存知の方はいらっしゃいますか?
注:私はjQueryを使用しているので、回答がそれを使用していれば問題ありません :).
解決方法は?
を使用することになります。
focus
と
blur
イベントを表示します。
var interval_id;
$(window).focus(function() {
if (!interval_id)
interval_id = setInterval(hard_work, 1000);
});
$(window).blur(function() {
clearInterval(interval_id);
interval_id = 0;
});
コメントされた二重発火の問題に答え、jQueryの使いやすさを維持するために。
$(window).on("blur focus", function(e) {
var prevType = $(this).data("prevType");
if (prevType != e.type) { // reduce double fire issues
switch (e.type) {
case "blur":
// do work
break;
case "focus":
// do work
break;
}
}
$(this).data("prevType", e.type);
})
クリックで表示 動作を示すコード例(JSFiddle)
関連
-
[解決済み】Heroku:ノードアプリで「このアプリにはデフォルトの言語が検出されませんでした」エラーがスローされる
-
[解決済み】TypeError: AngularJSで未定義のプロパティ'get'を読み取れない
-
[解決済み] 配列から特定の項目を削除するにはどうすればよいですか?
-
[解決済み] jQueryで要素が非表示になっているかどうかを確認するには?
-
[解決済み] JavaScriptで文字列が部分文字列を含むかどうかを確認する方法は?
-
[解決済み] 配列に特定のインデックスで項目を挿入する方法 (JavaScript)
-
[解決済み] ブラウザのウィンドウが現在アクティブでないことを検出する方法はありますか?
-
[解決済み] ブラウザウィンドウで現在のタブを閉じるには?
-
[解決済み】別のウェブページにリダイレクトするにはどうすればいいですか?
-
[解決済み】jQueryでチェックボックスがチェックされているかどうかを確認するにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】TypeError: $(...).DataTable は関数ではありません。
-
[解決済み】JavaScriptのgetElementByNameが機能しない
-
[解決済み】NodeJS "ESモジュールをロードするためにインポートを使用する必要があります。"
-
[解決済み】WebpackとBabelで「このファイルタイプを扱うには適切なローダーが必要な場合があります。
-
[解決済み】Jestが予期しないトークンに遭遇した
-
[解決済み】TypeError:res.jsonは関数ではありません。
-
[解決済み】Uncaught TypeError: 未定義のプロパティ 'msie' を読み取れない - jQuery tools
-
[解決済み】Javascript、[オブジェクトHTMLInputElement]を表示中。]
-
[解決済み] null のプロパティ 'addEventListener' を読み取ることができません。
-
[解決済み] ブラウザのウィンドウが現在アクティブでないことを検出する方法はありますか?