0

J'essaie maintenant de détecter uniquement l'événement du bouton de fermeture du navigateur de IE11 en JavaScript.Comment détecter IE11 fermer l'événement

J'ai été capable de détecter le bouton de fermeture du navigateur avec l'événement onbeforeunload, mais j'ai également du mal à détecter d'autres événements de transition de page.

Ce code est j'essaie dessus.

window.onbeforeunload = function(event) { 
    alert('Sure you want to close ?'); 
} 

Y at-il un bon moyen de le faire?

Répondre

0

Essayez d'utiliser la syntaxe addEventListener:

window.addEventListener('beforeunload', function(){ 
    alert('Sure you want to close ?'); 
}); 
+0

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

0

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.