Maison > interface Web > js tutoriel > le corps du texte

Comment puis-je capturer de manière fiable les événements de fermeture de fenêtre en JavaScript et exécuter des actions ?

Barbara Streisand
Libérer: 2024-11-25 19:10:14
original
950 Les gens l'ont consulté

How Can I Reliably Capture Window Close Events in JavaScript and Execute Actions?

Capturer un événement de fermeture de fenêtre et exécuter des actions en JavaScript

Déterminer le moment où un utilisateur quitte une page spécifiée, en particulier lors de la fermeture d'une fenêtre, peut être difficile . Voici comment capturer cet événement et effectuer des actions :

Navigateurs modernes (2024 et au-delà)

L'API Beacon fournit une solution pour capturer les événements de fermeture de fenêtre. Les demandes de balises sont conçues pour être exécutées même lorsque l'utilisateur quitte la page, garantissant une collecte de données fiable :

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

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

Surveillance des événements

Si la demande doit être lancée à au dernier moment, surveillez l'événement de changement de visibilité. Cet événement se déclenche lorsque la visibilité de la page passe d'active à masquée, indiquant que l'utilisateur a peut-être quitté la page :

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

Prise en charge des anciens navigateurs

Pour une compatibilité ascendante , pensez à utiliser la bibliothèque lifecycle.js pour gérer les événements du cycle de vie des pages :

lifecycle.addEventListener('statechange', function(event) {
  if (event.originalEvent == 'visibilitychange' && event.newState == 'hidden') {
    var url = "https://example.com/foo";
    var data = "bar";

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

Remarque : Les bloqueurs de publicités peuvent interférer avec les requêtes sendBeacon. Pensez à utiliser des requêtes de même origine ou à éviter les URL de suivi génériques.

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