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)
関連記事
-
-
JavaScript / jQueryにてページ表示時に指定したテキストボックスにフォーカスさせる方法
ページを開いた際に指定したテキストボックス(input type="text") ...
-
-
jQueryプラグインの作成
面白そうだったのでメモ。 ■参考サイト http://www.entacl.in ...
-
-
jQueryのfind実行時に複数のセレクタを指定する方法
jQueryのfind()実行時に複数のセレクタを指定したい。 <div ...
-
-
jQueryで同サーバ内のCSVを読み込み、配列やオブジェクトとして取り扱う方法
先日バニラJavaScriptで同サーバ内のCSVを読み込み、配列として取り扱う ...
-
-
jQueryにて指定した要素の親要素を削除する方法
jQueryにて指定した要素の親要素を削除したいケースがあった。通常の場合だと親 ...