2010-09-13 7 views
12

Je souhaite afficher une boîte de dialogue avant qu'une page html ne soit déchargée, demandant de décharger la page ou non. Si oui est sélectionné alors le déchargement continue, et si non est sélectionné alors l'événement de déchargement est annulé.Événement appelant avant le déchargement de la page

Répondre

21

Vous ne pouvez pas définir le texte sur "oui"/"non" (ce sera "Ok"/"Annuler" dans la plupart des navigateurs), mais vous pouvez demander (attention lors de l'utilisation) lorsque vous quittez le la page de quelque manière que l'utilisation window.onbeforeunload, comme ceci:

window.onbeforeunload = function() { 
    return "Are you sure you wish to leave the page?"; 
} 

utilisez uniquement si vous avez une bonne raison, ne gênent pas vos utilisateurs. Cela étant dit, cela vous demandera quand vous quittez la page, qui inclut l'historique en arrière, en avant, rafraîchit, ferme la fenêtre/l'onglet, en cliquant sur un lien pour naviguer ou envoyer un formulaire, etc. aller quelque part qui ne devrait pas inciter:

window.onbeforeunload = null; 

Par exemple, soumettre une forme d'information, vous voudriez demander avant de quitter/perdre les données, mais pas lors de la présentation réellement.

+0

@suraj: Par exemple, commencez à taper une réponse ci-dessous, puis essayez de quitter la page. :-) StackOverflow fait exactement ce que Nick décrit. –

+1

* "Donc, vous voudrez probablement appeler cela en allant quelque part qui ne devrait pas demander ..." * Ou utilisez un drapeau ou vérifiez la fonction, plutôt que de la déconnecter. Si la fonction ne renvoie pas de chaîne, elle ne l'invite pas. –

+1

@suraj: Exemple: http://jsbin.com/aquse4 –

Questions connexes