Exécution de code lors de la fermeture de la fenêtre du navigateur ou de l'actualisation de la page
Souvent, il est souhaitable d'effectuer des actions spécifiques lorsqu'un utilisateur ferme une fenêtre du navigateur ou actualise une page Web. Heureusement, il existe deux gestionnaires d'événements disponibles pour répondre à ce besoin : window.onbeforeunload et window.onunload.
window.onbeforeunload
L'événement onbeforeunload est déclenché lorsqu'un utilisateur tente de quitter une page. Généralement, il est utilisé pour afficher une boîte de confirmation demandant à l'utilisateur de confirmer son choix ou de l'empêcher de quitter la page s'il dispose de données non enregistrées. Cependant, en ne renvoyant pas de chaîne ou en définissant event.returnValue, vous pouvez empêcher le navigateur d'afficher un message et exécuter votre code en silence.
window.onunload
Le L'événement onunload est déclenché lorsqu'une page est déchargée du navigateur. Il est couramment utilisé pour effectuer des tâches de nettoyage telles que la suppression des écouteurs d'événements persistants ou la fermeture des connexions à la base de données.
Implémentation
Onbeforeunload et onunload peuvent être attribués aux propriétés de la fenêtre ou en utilisant la méthode .addEventListener. Voici un exemple :
// window property window.onbeforeunload = function() { // Do something }; // .addEventListener window.addEventListener("beforeunload", function(e) { // Do something });
Remarque :
Dans le cas des iframes, les événements onbeforeunload ne se déclenchent pas lorsque l'iframe est supprimée par son parent, mais déchargent et les événements pagehide le font. Cependant, Firefox présente actuellement un bug qui empêche le déclenchement de ces événements en cas de suppression d'iframe, ce qui rend impossible l'exécution de code immédiatement avant la suppression d'une iframe 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!