Maison >interface Web >js tutoriel >Comment gérer les événements de fermeture de fenêtre et d'actualisation de page de manière discrète ?

Comment gérer les événements de fermeture de fenêtre et d'actualisation de page de manière discrète ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-28 08:41:11937parcourir

How to Handle Window Closure and Page Refresh Events Unobtrusively?

Fermeture discrète de la fenêtre et gestion des événements d'actualisation de page

Pour exécuter du code lors de la fermeture d'une fenêtre de navigateur ou de l'actualisation d'une page, un peut utiliser les écouteurs d'événements window.onbeforeunload et window.onunload. Selon le navigateur, ces auditeurs sont invoqués différemment.

La syntaxe d'attribution de ces auditeurs est soit de les affecter directement aux propriétés de la fenêtre :

window.onbeforeunload = function(){
  // Code to execute on window closure or page refresh
};

Soit via la méthode addEventListener :

window.addEventListener("beforeunload", function(e){
  // Code to execute on window closure or page refresh
});

Par défaut, l'écouteur onbeforeunload est généralement utilisé pour empêcher les utilisateurs de quitter brusquement une page, surtout si des données non enregistrées sont présentes. Cependant, en omettant une chaîne de retour ou en définissant e.returnValue sur falsy, le code peut être déclenché sans afficher de boîte de dialogue de confirmation.

Il est à noter que l'événement beforeunload peut ne pas fonctionner dans les iframes lorsqu'il est supprimé par son parent. Cependant, les événements unload et pagehide sont efficaces dans ce scénario dans Chrome. Firefox, en revanche, présente un bug qui empêche ces événements de se déclencher lorsqu'une iframe est supprimée par son parent.

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