JavaScript / jQueryでブラウザのウィンドウがアクティブかどうかを判別する方法
ある動画サイトを閲覧していた際にウィンドウが非アクティブになると視聴中の動画が止まるという機能が見受けられた。動画の再生・停止は置いておいてウィンドウがアクティブかどうかを判別し、それぞれ別の動作をJavaScript / jQueryで実装してみたい。以下に実装方法をメモ。
目次
ソースコード
<html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>JavaScript / jQueryでウィンドウがアクティブかどうかチェックするテストページ</title> </head> <div id="alert"></div> <body> <script type="text/javascript" src="https://code.jquery.com/jquery-3.7.1.min.js"></script> <script type="text/javascript"> //JavaScript //アクティブ時 window.addEventListener('focus', active, false); //非アクティブ時 window.addEventListener('blur', passive, false); //jQuery //アクティブ時 $(window).on('focus', function(){ active(); }); //非アクティブ時 $(window).on('blur', function(){ passive(); }); //アクティブ時に実行する関数 function active(){ document.getElementById(`alert`).innerText = `active`; } //非アクティブ時に実行する関数 function passive(){ document.getElementById(`alert`).innerText = `passive`; } </script> </body> </html>
ウィンドウがアクティブかどうか判別し、それぞれ別の関数をリクエストして#alert内の文字を変更するというもの。
注意点
PCのfirefoxから見た際にJavaScript版だとページ表示時にactive()が実行されたが、jQuery版は実行されなかった。jQuery版を使う場合はあらかじめactive()を実行する必要がある点に注意。
リファレンス
EventTarget: addEventListener(JavaScript)
https://developer.mozilla.org/ja/docs/Web/API/EventTarget/addEventListener
focus event(jQuery)
https://api.jquery.com/focus/#on-
blur event(jQuery)
関連記事
-
-
jQuery UIでカレンダーピッカー(Datepicker)の利用方法
フォーム等で日付を入力する際にカレンダーピッカー機能を実装することがある。その際 ...
-
-
jQueryからAjax経由でPHPにリクエストしCookieを操作する方法
先日PHPでCookie保存時にHttpOnly / Secure属性を設定する ...
-
-
PHPとajaxでチャットの作成
■ソース ・index.php <? error_reporting(E_ ...
-
-
モーダルウィンドウ表示時にウィンドウのスクロール位置をリセットする方法
モーダルウィンドウ内で「縦にスクロール→ウィンドウを閉じる→改めてモーダルウィン ...
-
-
jquery.cookie.jsで「$.cookie is not a function」エラー
フロントエンド側でCookieを利用したい場合jquery-cookieを用いる ...