Comment collecter la valeur de retour de onbeforeunload
Je suis l'affichage d'un message d'avertissement si l'utilisateur essayez de fermer la fenêtre sans enregistrer le formulaire.
window.onbeforeunload = askConfirm;
function askConfirm()
{
//needToConfirm is set to true if any changes are there in the form
if (needToConfirm)
{
return "Your unsaved data will be lost.";
}
}
function call_this_if_user_clicks_on_cancel()
{
//Bla bla bla
//After this user should remain on the same page.
}
Maintenant, je veux appeler une autre fonction lorsque l'utilisateur clique sur Okay
. Et le reste de la fonctionnalité devrait rester la même.
Alors, comment puis-je récupérer onbeforeunload
valeur de retour et d'appeler une autre fonction ?
SOLUTION:
needToConfirm = false;
window.onbeforeunload = askConfirm;
window.onunload = unloadPage;
isDelete = true;
function unloadPage()
{
if(isDelete)
{
call_this_if_user_clicks_on_cancel()
}
}
function askConfirm()
{
alert("onbeforeunload");
if (needToConfirm)
{
//Message to be displayed in Warning.
return "Your data will be lost.";
}
else
{
isDelete = false;
}
}
Merci Alex.
source d'informationauteur xyz
Vous devez vous connecter pour publier un commentaire.
Je ne suis pas certain, Mais je serais bien pensé que vous ne pouvez pas appeler une autre fonction, comme une mesure préventive par le navigateur afin de ne pas se faire piéger de quitter la page.
Je pense que le navigateur ne sait pas si elle est retourne true /false pour déterminer si la page est déchargé (ou pas).
Précédemment unbeforeunload était non-standard (à partir de IE4, mais pris en charge par les autres navigateurs)
Voici la Mozilla docs https://developer.mozilla.org/en/DOM/window.onbeforeunload
Et Microsoft docs: http://msdn.microsoft.com/en-us/library/ms536907(SV.85).aspx
Cependant, il semble que la pensée BeforeUnloadEvent est dans le HTML5 proposition.
Ce document présente en détail les étapes qui se produisent lorsqu'un document est déchargé (à lire):
http://www.w3.org/TR/html5/history.html#beforeunloadevent
Comme une solution de contournement:
Vous pouvez être en mesure de recueillir les informations dont vous avez besoin à partir de la "événement unload", si l'événement unload est PAS appelé d'après le onbeforeunload, on pourrait supposer que l'utilisateur a choisi de rester sur votre page.
https://developer.mozilla.org/en/DOM/window.onunload