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)
関連記事
-
-
formのpasswordとtextをjQueryで切り替える方法
formでtype="password"を指定していると内容を入力した際に「●● ...
-
-
jQueryプラグインのDateTimePickerで年月日と時間のピッカーを実装する方法
jQueryで年月日と時間を選択できるピッカーを導入したかった。以前にboots ...
-
-
FullCalendarでカレンダー内のイベントをクリックした際にタイトル以外の内容も表示させる方法
FullCalendarでカレンダー内のイベントをクリックした際にtitle以外 ...
-
-
JSやjQueryで動的に追加した要素に対して「slick」でスライダーを実行する方法
外部サーバからAjax等で画像URLを取得したものをimgタグとしてページ内に描 ...
-
-
jQueryにて指定した要素の親要素を削除する方法
jQueryにて指定した要素の親要素を削除したいケースがあった。通常の場合だと親 ...