Comment détecter la fermeture d'une page Web en JavaScript ?

Réponses rédigées par Antoine
Dernière mise à jour : 2020-01-27 16:01:32
Thèmes : webmaster - javascript
Question

Comment puis-je détecter la fermeture d'une page Web, du navigateur ou d'un onglet, en JavaScript ?

Réponse

Un onglet ou une page Web se fermant dans un navigateur peut être détecté à l'aide de l'événement beforeunload. Cela peut être utilisé pour alerter l'utilisateur dans le cas où certaines données ne sont pas enregistrées sur la page, ou si l'utilisateur a fermé l'onglet ou le navigateur par erreur.

La méthode addEventListener() est utilisée pour configurer une fonction chaque fois qu'un événement se produit. L'événement beforeunload est déclenché juste avant la fermeture des fenêtres et de ses ressources et permet ainsi de détecter la fermeture d'une page Web en JavaScript.

<script> 
window.addEventListener('beforeunload', function (e) { 
	e.preventDefault(); 
	e.returnValue = ''; 
}); 
</script> 

Le gestionnaire d'événements doit appeler preventDefault() pour afficher la boîte de dialogue de confirmation conformément aux spécifications. Si l'utilisateur souhaite continuer vers une nouvelle page, il accède à la nouvelle page, sinon la navigation est annulée. Cependant, les anciens navigateurs peuvent ne pas prendre en charge cette méthode pour détecter la fermeture d'une page Web en JavaScript ; une méthode héritée est alors utilisée dans laquelle le gestionnaire d'événements doit renvoyer une chaîne. Cette chaîne retournée peut être vide.