Maison > interface Web > js tutoriel > Comment puis-je détecter de manière fiable la fermeture de la fenêtre du navigateur en JavaScript ?

Comment puis-je détecter de manière fiable la fermeture de la fenêtre du navigateur en JavaScript ?

Patricia Arquette
Libérer: 2024-11-27 16:23:10
original
970 Les gens l'ont consulté

How Can I Reliably Detect Browser Window Closure in JavaScript?

JavaScript : Détection de la fermeture de la fenêtre via l'événement window.close

Problème :

La capture de l'événement window.close est nécessaire pour détecter lorsqu'un utilisateur ferme la fenêtre du navigateur ou s'éloigne d'un site spécifique page.

Solution :

La mise en œuvre de cette solution varie en fonction de la compatibilité du navigateur.

Mise à jour 2024 :

  • API Beacon : Une requête POST qui se termine même si l'utilisateur quitte la page. Idéal pour envoyer des données de session, des analyses, etc.
  • Événement de changement de visibilité : Dernier événement fiable qui se déclenche lorsque le document passe à l'état « masqué » (page fermée ou éloignée).

Détails :

Balise API

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

navigator.sendBeacon(url, data);
Copier après la connexion

Événement Visibilitychange

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

Support multi-navigateurs :

Si la prise en charge d'anciens navigateurs est requise, le cycle de vie La bibliothèque .js peut être utilisé :

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

Limitations :

  • Les bloqueurs de publicités peuvent interférer avec les requêtes sendBeacon, en particulier celles d'origine croisée.
  • Cross-site les demandes sont soumises aux restrictions CORS.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal