Maison >interface Web >js tutoriel >Comment exécuter du code JavaScript lorsqu'une fenêtre de navigateur se ferme ou s'actualise ?

Comment exécuter du code JavaScript lorsqu'une fenêtre de navigateur se ferme ou s'actualise ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-22 02:04:14584parcourir

How do I Execute JavaScript Code When a Browser Window Closes or Refreshes?

Exécuter du code JavaScript à la fermeture d'une fenêtre ou à l'actualisation d'une page

Lorsqu'un utilisateur ferme une fenêtre de navigateur ou actualise une page, il est souvent souhaitable d'exécuter un dernier morceau de code. Semblable à l'événement onload, mais pour la fermeture ou l'actualisation, il existe deux options principales : onbeforeunload et onunload.

window.onbeforeunload et window.onunload

Ces deux événements les gestionnaires vous permettent d'exécuter du code lorsqu'une fenêtre se ferme ou s'actualise. La principale différence est que onbeforeunload se déclenche avant que le navigateur n'invite l'utilisateur avec une boîte de dialogue de confirmation (telle que « Quitter la page ? » ou « Recharger ? »), tandis que onunload se déclenche après que l'utilisateur confirme l'action.

Utilisation :

Vous pouvez attribuer des fonctions à ces gestionnaires d'événements soit en définissant les propriétés de la fenêtre directement, soit en utilisant addEventListener méthode.

Affectation directe :

window.onbeforeunload = function() {
  // Do something
};
window.onunload = function() {
  // Do something
};

Méthode addEventListener :

window.addEventListener('beforeunload', function(e) {
  // Do something
});
window.addEventListener('unload', function(e) {
  // Do something
});

Remarque sur onbeforeunload :

En général, onbeforeunload est utilisé pour empêcher l'utilisateur de quitter la page (par exemple, s'il a des données non enregistrées). Cependant, vous pouvez empêcher la boîte de dialogue de confirmation en ne renvoyant pas de chaîne ou en définissant event.returnValue.

Considérations supplémentaires :

  • Suppression Iframe : L'événement beforeunload ne fonctionne pas si l'iframe est supprimé par son parent, mais les événements unload et pagehide fonctionnent dans la plupart des versions modernes. navigateurs.
  • Bogue Firefox : Depuis août 2023, Firefox a un bug où les événements de déchargement et de masquage de page ne fonctionnent pas pour la suppression d'iframe.

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