En fait, le onbeforeunload événement sera déclenché lorsque vous fermez le navigateur/onglet, actualiser la page (ou F5), soumettre un formulaire, ou passer à autre pages..etc AFAIK, il n'y a pas un moyen idéal pour détecter quelle opération exactement USER do.But pour votre question, je pense qu'il ya une balise html comme
<a href="abc.com">To ABC</a>
qui a déclenché l'événement onbeforeunload lorsque vous avez cliqué dessus. Si c'est vrai, vous pouvez peut-être supprimer l'événement lorsque le HREF était actif afin que l'événement ne soit pas déclenché. codes Try soufflent:
<script type="text/javascript">
$(function() {
$("a").click(function() {
window.onbeforeunload = null;
location.href = $(this).attr("href");
return false;
});
});
window.onbeforeunload = function(e) {
return 'Sure you want to close ?';
}
</script>
Notez que ce ne serait pas empêcher la opreation de rafraîchissement tiré le onbeforeunload événement, mais j'espère fournir quelques idées pour résoudre votre problème.
Merci pour la réponse :) J'ai essayé addEventListener, mais cela a également ramassé d'autres événements de transition de page. Dans la version précédente de IE, si la valeur de event.clientY était négative, elle pouvait être détectée comme une opération de fermeture du navigateur, mais elle ne pouvait pas être utilisée dans IE11 ... – Scias