ホームページ > ウェブフロントエンド > jsチュートリアル > ユーザーがブラウザのタブを閉じたり、Web ページから移動したりしたことを確実に検出するにはどうすればよいですか?

ユーザーがブラウザのタブを閉じたり、Web ページから移動したりしたことを確実に検出するにはどうすればよいですか?

Patricia Arquette
リリース: 2024-12-07 21:32:14
オリジナル
981 人が閲覧しました

How Can I Reliably Detect When a User Closes a Browser Tab or Navigates Away from My Web Page?

JavaScript でのウィンドウ終了イベントのキャプチャ

Web 分析では、ユーザーのページ放棄を特定することが重要です。この記事では、ユーザーがブラウザーのタブを閉じたとき、または特定のページから移動したときを検出する手法について説明します。

Window.close イベント

以前は、window.close イベント窓の閉鎖を追跡するための信頼できる方法を提供しました。ただし、ページのライフサイクル管理の変更により、このイベントの信頼性が低くなります。

Visibilitychange イベント

最新のブラウザの場合、visibilitychange イベントは、ユーザーが終了したときのより正確な表現を提供します。ページ。このイベントは、ページの表示状態が表示から非表示に遷移したときにトリガーされます。

document.addEventListener('visibilitychange', function() {
  if (document.visibilityState === "hidden") {
    // Perform actions on page exit
  }
});
ログイン後にコピー

Beacon API

包括的なクロスブラウザーのサポートについては、Beacon API の使用を検討してください。ビーコン リクエストは、ユーザーがページを離れた場合でも完了するように設計されており、セッションと分析のデータ キャプチャが保証されます。

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

navigator.sendBeacon(url, data);
ログイン後にコピー

Lifecycle.js ライブラリ

との互換性のため従来のブラウザでは、lifecycle.js ライブラリが追加のサポートを提供します。ページのライフサイクルのベスト プラクティスを実装し、信頼性の高いイベント処理を保証します。

lifecycle.addEventListener('statechange', function(event) {
  if (event.originalEvent === 'visibilitychange' && event.newState === 'hidden') {
    navigator.sendBeacon(url, data);
  }
});
ログイン後にコピー

考慮事項

  • 広告ブロッカー: 一部の広告ブロッカーは、特定の宛先への sendBeacon リクエストをブロックする
  • クロスサイト リクエスト: ビーコン リクエストは CORS 制限の対象となります。

以上がユーザーがブラウザのタブを閉じたり、Web ページから移動したりしたことを確実に検出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート