Maison > interface Web > js tutoriel > Comment puis-je détecter de manière fiable la fermeture d'un navigateur ou d'un onglet initiée par l'utilisateur ?

Comment puis-je détecter de manière fiable la fermeture d'un navigateur ou d'un onglet initiée par l'utilisateur ?

Patricia Arquette
Libérer: 2024-12-24 07:35:18
original
506 Les gens l'ont consulté

How Can I Reliably Detect Browser or Tab Closure Initiated by the User?

Détection de la fermeture d'un navigateur ou d'un onglet

Le défi consiste à faire la différence entre les fermetures de navigateur déclenchées par des actions de l'utilisateur telles que le clic sur un lien et celles initiées par commandes de fermeture explicites.

JavaScript/jQuery multi-navigateurs Approches

Comme mentionné dans la réponse, JavaScript fournit des événements pour gérer la fermeture du navigateur ou de l'onglet :

  • onunload : Se déclenche lorsqu'une fenêtre ou un onglet est entièrement déchargé pour quelque raison que ce soit, y compris la navigation ou la fermeture.
  • onbeforeunload : Se produit avant la fermeture d'une fenêtre ou d'un onglet, donnant la possibilité de demander à l'utilisateur une confirmation ou d'effectuer des actions spécifiques.

Limitation :

Cependant, ces événements ne sont pas uniquement déclenchés par des commandes de fermeture. Ils sont également invoqués lors du rechargement des pages et de la navigation. Par conséquent, se fier uniquement à ces événements ne peut pas garantir que la fermeture a été initiée par une action de fermeture explicite.

Perspective alternative :

Si votre objectif est de détecter la fermeture sans interaction de l'utilisateur (par exemple, pour éviter une perte accidentelle de données), vous pouvez envisager une alternative mécanismes :

  • Interrogation : Vérifie régulièrement les changements dans l'état de la fenêtre ou de l'onglet à l'aide d'intervalles JavaScript. Cependant, cette approche peut introduire une surcharge et peut ne pas être fiable dans tous les navigateurs.
  • WebSockets : Établir une connexion persistante avec un serveur. Lorsque la connexion est interrompue en raison de la fermeture du navigateur ou d'un onglet, vous pouvez enregistrer l'événement.

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