Maison >interface Web >js tutoriel >Comment exécuter du code avant qu'un utilisateur ferme la fenêtre du navigateur ou actualise la page ?

Comment exécuter du code avant qu'un utilisateur ferme la fenêtre du navigateur ou actualise la page ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-18 12:00:05368parcourir

How do I Execute Code Before a User Closes the Browser Window or Refreshes the Page?

Exécuter le code avant la fermeture de la fenêtre ou l'actualisation de la page

Pour exécuter du code lorsqu'un utilisateur ferme la fenêtre du navigateur ou actualise la page, envisagez d'utiliser l'option Gestionnaires d’événements window.onbeforeunload et window.onunload. Ces gestionnaires ont des comportements différents selon le navigateur.

Attribution de gestionnaires d'événements

Vous pouvez définir ces gestionnaires d'événements à l'aide de l'affectation de propriétés ou de la méthode addEventListener :

// Property assignment
window.onbeforeunload = function() { 
  // Code to execute
};

// Event listener
window.addEventListener("beforeunload", function(e) { 
  // Code to execute
});

window.onbeforeunload Event

window.onbeforeunload est couramment utilisé pour empêcher les utilisateurs de quitter une page avec des modifications non enregistrées. Cependant, si vous ne renvoyez pas de chaîne ou ne définissez pas event.returnValue, l'événement exécutera le code en silence.

window.onunload Event

window.onunload est un événement plus complet qui se déclenche juste avant le déchargement de la page. Il vous permet d'effectuer des tâches telles que le suivi de l'activité des utilisateurs ou la sauvegarde du stockage local.

Remarque :

  • window.onbeforeunload peut ne pas fonctionner à partir des iframes supprimées par leur parent dans Firefox (en août 2023).
  • Envisagez d'utiliser window.pagehide au lieu de window.onbeforeunload pour iframes dans Firefox.

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!

Déclaration:
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