Comment prévenir la fenêtre.onbeforeunload événement qui a été déclenché par le bouton et les liens des événements
Mon formulaire contient plusieurs boutons et des liens hypertexte et je veux afficher une alerte sur le bouton retour du navigateur.
J'ai utilisé le code ci-dessous qui fonctionne très bien sur Chrome et Safari, mais ne fonctionne pas dans IE et Firefox:
window.onload = function() {
var btnClicks = document.getElementsByClassName('noPopup');
var links = document.getElementsByTagName('a');
for (var i = 0; i < links.length; i++) {
links[i].onclick = setGlobal;
}
for (var i = 0; i < btnClicks.length; i++) {
btnClicks[i].onclick = setGlobal;
}
function setGlobal() {
window.btn_clicked = true;
window.linkClicked = true;
}
window.onbeforeunload = function() {
if (!window.btn_clicked || !window.linkClicked) {
return 'Would you like to save first.';
}
};
};
OriginalL'auteur HBK | 2013-07-24
Vous devez vous connecter pour publier un commentaire.
dans IE - si vous ne voulez pas le
onbeforeunload
pour déclencher - tout ce que vous devez faire est de mettre cet événement pournull
, comme ceci:donc, ce que vous avez à faire est d'ajouter un écouteur d'événement clic à tous vos boutons et de liens (qui rediriger l'utilisateur vers une autre URI) et de l'intérieur que de l'écoute, réglez la
onbeforeunload
écouteur d'événement ànull
une fois qu'ils sont cliqués (avant de procéder à la normale un lien/bouton d'action. Autrement - définir la fonction (comme vous avez dans votre code).par exemple:
Ici vous dépassement de la fenêtre.onbeforeunload, de sorte que si l'utilisateur clique sur mybutton ne redirige pas sur lui à l'extérieur, puis clique sur le bouton de retour, il ne verra pas le onbeforeunload arrive
Oui, si le bouton n'est pas redirigé à l'extérieur - le bouton ne doit pas déclencher la
onbeforeunload
événement, d'où le dépassement n'est pas nécessaire. J'ai mis à jour mon post. MerciDans IE 8, cela ne fonctionne pas. IE premier exécute la méthode déclenchée par onbeforeunload.
Vous dire non. Mais je viens de voir avec mes yeux. Et je suis en train d'élaborer une solution de contournement pour ce comportement d'IE 7 & 8. IE 9 et versions plus récentes ont un autre (plus sympa) de comportement.
OriginalL'auteur tborychowski
À l'aide de cette beforeunload ne se fera que sur la fermeture du navigateur ni de se produire lors de l'actualisation de clic de l'ancre et également agir en tant qu'événement unload par l'exclusion de retour pour cacher intégré dans le message pop-up sur l'avant de l'événement unload
De la souris Se produit lors de la Fermeture de la fenêtre du Navigateur
welcome_login/logout
?URL de détruire la session & cookies. juste chemin de la classe/fonction
Session.L'abandonner et de Cookies.Est-ce clair ?
Oui, les deux
Éviter de publications, liens, F5 actualiser, bouton de retour ?
OriginalL'auteur Umair Aziz