Heim >Web-Frontend >js-Tutorial >Wie kann ich das Schließen von Browserfenstern in JavaScript zuverlässig erkennen?

Wie kann ich das Schließen von Browserfenstern in JavaScript zuverlässig erkennen?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-27 16:23:10956Durchsuche

How Can I Reliably Detect Browser Window Closure in JavaScript?

JavaScript: Fensterschließung über das window.close-Ereignis erkennen

Problem:

Das Erfassen des window.close-Ereignisses ist erforderlich um zu erkennen, wann ein Benutzer das Browserfenster schließt oder von einem bestimmten Browser weg navigiert Seite.

Lösung:

Die Implementierung dieser Lösung variiert je nach Browserkompatibilität.

Aktualisiert 2024:

  • Beacon API: Eine POST-Anfrage, die auch dann abgeschlossen wird, wenn die Der Benutzer verlässt die Seite. Ideal zum Senden von Sitzungsdaten, Analysen usw.
  • Sichtbarkeitsänderungsereignis: Letztes zuverlässiges Ereignis, das ausgelöst wird, wenn das Dokument in den Status „versteckt“ wechselt (Seite geschlossen oder wegnavigiert).

Details:

Leuchtfeuer API

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

navigator.sendBeacon(url, data);

Visibilitychange Event

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

Browserübergreifende Unterstützung:

Wenn die Unterstützung älterer Browser erforderlich ist, ist der Lebenszyklus erforderlich .js Bibliothek kann sein verwendet:

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

Einschränkungen:

  • Adblocker können sendBeacon-Anfragen stören, insbesondere Cross-Origin-Anfragen.
  • Cross-Site Anfragen unterliegen CORS-Einschränkungen.

Das obige ist der detaillierte Inhalt vonWie kann ich das Schließen von Browserfenstern in JavaScript zuverlässig erkennen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn