empêcher firefox de confirmation de rechargement
Je suis de l'affichage de certains documents modifiable dans un tableau. L'utilisateur, lors de tentatives pour recharger la table pendant que la modification d'un enregistrement d'un pop-up vient d'avertissement de l'enregistrement sur les données non enregistrées.
function cancelProcess()
{
if(noEditedRecords !=0)//number of edited records in the table
{
var processConfirmation = confirm("You've Edited "+ noEditedRecords +" Records. Are You sure to undo the Changes made?");
if (processConfirmation ==true){
window.onbeforeunload = null;
window.location.reload();}
}}
Quand il clique sur Ok pour recharger la page, Firefox affiche l'écran
"Pour afficher cette page, Firefox doit envoyer des informations qui permettront de répéter une action (telles que la recherche ou de la confirmation de commande) qui a été réalisée plus tôt."
Et lors de l'ouverture de la même page dans chrome, pas d'un tel message.
J'ai essayé d'éviter cela par la mise en fenêtre.onbeforeunload = null;, mais encore la fenêtre d'invite s'affiche.
Aussi j'ai essayé en changeant de configuration de Firefox
navigateur.sessionstore.postdata;
Changé de 0 à 1 comme suggéré dans mozilla page de support.
Mais rien n'a fonctionné.. Comment je prévenir l'Invite???
Ont inclus le code ..
OriginalL'auteur Emmi | 2012-09-27
Vous devez vous connecter pour publier un commentaire.
À l'aide de
Au lieu de
de travail pour moi.
Vous avez sauvé ma journée 😉
OriginalL'auteur Ricardo Huertas
J'ai trouvé la décision ici
(Testé sur Firefox 32 et Chrome 38.)
OriginalL'auteur Seva Bityukov
J'ai résolu ce problème, et envoyé des données que seulement OBTENIR au lieu de POST,
Il ma pas répondre à tous les besoins, mais il fonctionne....
J'ai été aussi à l'aide de emplacement.reload();
OriginalL'auteur Mikeys4u
Le comportement est correct. Selon w3schools recharger a un paramètre forceGet que la valeur par défaut est false, et comme un résultat si vous avez un message soumettre, le navigateur va essayer de renvoyer le POST de données, et en tant que tel, il a besoin de votre confirmation. Firefox n'a ce droit, et google chrome se comporte comme s'il dispose d'un défaut de vrai pour forceGet
http://www.w3schools.com/jsref/met_loc_reload.asp
tout
window.location=window.location
ouwindow.location=window.location.href
(ou toute autre variation de la ce) fonctionne la plupart du temps, lorsque vous utilisez une ancre de l'url comme http://www.google.com#test ne sera pas actualisé avec cette méthode. Le navigateur va faire exactement la même chose qu'il va faire quand vous êtes déjà sur google.com et vous modifiez l'url en ajoutant #test. Le navigateur va juste essayer de localiser la balise d'ancrage dans la page qui a le nom de test, et faites défiler vers le bas pour elle, sans actualisation de votre navigateur.La solution qui fonctionne dans ce cas, ainsi que tout autre cas que j'ai rencontré serait
window.location.reload(true);
Espère que cette aide,
Alexandru Cosoi
OriginalL'auteur Alexandru Cosoi
Le moyen d'éviter que l'invite est de ne pas créer une situation où un utilisateur est en train d'essayer de recharger un POST de la page de résultat.
Vous pouvez utiliser Javascript et de faire de l'AJAX.
Qui dépend de la nature de l'état précédent que vous voulez. Juste en se concentrant barre d'adresse et appuyer sur la touche enter, par exemple, faire ce que vous voulez.
OriginalL'auteur Boris Zbarsky
De l'essayer.
OriginalL'auteur CookieMonster