Comment empêcher la fermeture de la fenêtre du navigateur?

J'ai essayé le code suivant pour obtenir une alerte lors de la fermeture d'une fenêtre de navigateur:

window.onbeforeunload = confirmExit;
function confirmExit() {
  return "You have attempted to leave this page.  If you have made any changes to the fields without clicking the Save button, your changes will be lost.  Are you sure you want to exit this page?";
}

Il fonctionne, mais si la page contient un lien hypertexte, en cliquant sur cet hyperlien pose la même alerte. J'ai besoin d'afficher l'alerte que lorsque je ferme la fenêtre du navigateur et non pas en cliquant sur les hyperliens.

  • Voté pour la réouverture. La duplication liée ne pas répondre à la question, mais les réponses sont ici.
  • FWIW, je viendrai vous poignarder dans le petit orteil si vous mettez ce comportement dans n'importe quelle application que j'ai à utiliser. Le détournement de navigateur est un godawful solution à ce problème. Ne pouvez-vous pas simplement utiliser de l'AJAX ou quelque chose et auto-enregistrer leur état?
  • Je suis en désaccord avec Graham-parfois une alerte de confirmation est tout ce dont vous avez besoin. Accordé ce peut être (et est souvent abusé par les sites d'essayer de vous empêcher de partir, mais ils sont utilisés adéquatement, il peut être beaucoup apprécié, par exemple, si vous oubliez de poster quelque chose.
  • Vous aurez toujours des problèmes si vous voulez vous rafraîchir la page, même si vous désactivez le point d'ancrage des événements.
InformationsquelleAutor user42348 | 2008-12-02