Maison >interface Web >js tutoriel >Comment puis-je détecter la fermeture de la fenêtre du navigateur sans intercepter les soumissions de formulaires ?
Capture de l'événement de fermeture de la fenêtre du navigateur sans interception de soumission de formulaire
Pour capturer spécifiquement l'événement de fermeture de la fenêtre du navigateur, en évitant les conflits avec la soumission du formulaire, beforeunload de jQuery l'événement peut être exploité avec une légère modification.
L'événement beforeunload, tel qu'il est, déclenche toute action qui provoque la page à abandonner. Pour le limiter aux seuls événements de fermeture de fenêtre, nous utilisons l'approche suivante :
Dans le gestionnaire d'événements beforeunload, nous vérifions la valeur de inFormOrLink.
Le code mis à jour pour les versions 1.7 et ultérieures de jQuery :
var inFormOrLink; $('a').on('click', function() { inFormOrLink = true; }); $('form').on('submit', function() { inFormOrLink = true; }); $(window).on("beforeunload", function() { return inFormOrLink ? "Do you really want to close?" : null; })
Pour les anciennes versions de jQuery (avant la version 1.7) :
var inFormOrLink; $('a').live('click', function() { inFormOrLink = true; }); $('form').bind('submit', function() { inFormOrLink = true; }); $(window).bind("beforeunload", function() { return inFormOrLink ? "Do you really want to close?" : null; })
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!