ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript でブラウザ ウィンドウの終了を確実に検出するにはどうすればよいですか?

JavaScript でブラウザ ウィンドウの終了を確実に検出するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-27 16:23:10955ブラウズ

How Can I Reliably Detect Browser Window Closure in JavaScript?

JavaScript: window.close イベントによるウィンドウの終了の検出

問題:

window.close イベントのキャプチャが必要ですユーザーがブラウザ ウィンドウを閉じたとき、または特定のウィンドウから移動したときを検出します。ページ。

解決策:

このソリューションの実装はブラウザの互換性によって異なります。

2024 年更新:

  • ビーコンAPI: ユーザーがページを終了しても完了する POST リクエスト。セッション データ、分析などの送信に最適です。
  • Visibilitychange イベント: ドキュメントが「非表示」状態に移行したとき (ページが閉じられたか移動されたときにトリガーされる) 信頼できる最後のイベント。

詳細:

ビーコン API

var url = "https://example.com/foo";
var data = "bar";

navigator.sendBeacon(url, data);

Visibilitychange イベント

document.addEventListener('visibilitychange', function() {
  if (document.visibilityState === "hidden") {
    // Send Beacon request or perform other actions
  }
});

クロスブラウザサポート:

古いブラウザのサポートが必要な場合は、lifecycle.js ライブラリを使用できます:

lifecycle.addEventListener('statechange', function(event) {
  if (event.originalEvent == 'visibilitychange' && event.newState == 'hidden') {
    // Send Beacon request or perform other actions
  }
});

制限事項:

  • 広告ブロッカーは、特に sendBeacon リクエストを妨害する可能性があります。クロスオリジンリクエスト。
  • クロスサイトリクエストは CORS 制限の対象となります。

以上がJavaScript でブラウザ ウィンドウの終了を確実に検出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。