Définir onbeforeunload sur l'élément body dans Chrome et IE en utilisant jQuery
J'ai un système où je veux vérifier avec l'utilisateur, s'ils sont sûrs qu'ils veulent quitter la page une fois un sale drapeau est réglé.
Je suis en utilisant le code suivant - Dans FireFox, je peux regarder le code source de la page grâce à FireBug et la balise correctement a la onbeforeunload attribut inséré.
Dans Chrome et FireFox, cela n'arrive pas et si je suis en mesure de naviguer à partir de la page sans aucun avertissement. Le jQuery ligne pour mettre à jour la balise body est certainement en cours d'exécution, il n'est tout simplement pas.
if ($("body").attr('onbeforeunload') == null) {
if (window.event) {
//IE and Chrome use this
$("body").attr('onbeforeunload', 'CatchLeavePage(event)');
}
else {
//Firefox uses this
$("body").attr('onbeforeunload', 'return false;CatchLeavePage(event)');
}
}
Toutes les idées sur la façon de procéder à partir d'ici?
source d'informationauteur Graeme
Vous devez vous connecter pour publier un commentaire.
vous ne pouvez pas abandonner page décharger, en retournant false. vous devez retourner la chaîne de caractères qui sera affichée à l'utilisateur dans une boîte de message, et il décide si il veut partir ou de rester sur la page (en cliquant sur 'OK' ou bouton 'Annuler'), de sorte que vous devez écrire votre code comme ceci:
essayer cette
Vérifier ce code :
Ces scripts fonctionnent bien, mais si je veux déclencher un appel AJAX lorsque l'utilisateur de confirmer la fermeture de fenêtre?
J'ai essayé cela, mais l'appel AJAX est tiré à la fois si l'utilisateur clique sur "oui, fermer" ou "non, restez ici" (essayé sur Firefox 38.x)
C'est pas joli, mais ça a fait l'affaire.