IE9 déclenche un événement onbeforeunload lorsque la fenêtre s’ouvre

Je construis un site à l’aide de l’applet JFileUpload et souhaite gérer la fermeture d’une page d’une certaine manière. JSTransferCancelled est appelé lorsque l’applet est annulé. Le code suivant est ce que j’utilise pour gérer ces événements et il fonctionne dans tous les navigateurs sauf IE.

function JSTransferCancelled(){ bCancel=false; $.post("cancel.php"); self.close(); } $(window).load(function(){ $(window).bind('beforeunload',function(){ document.uploader.setEnabled(false); if(bCancel){ document.uploader.cancel();} }); }); 

J’ouvre la page avec l’uploader dessus dans un nouvel onglet du site principal et je veux la fermer quand ils annulent l’envoi. Lorsque j’ouvre l’onglet dans IE, cependant, je reçois instantanément l’alerte indiquant que The webpage you are viewing is trying to close this tab. Do you want to close this tab? [OK] [Cancel] The webpage you are viewing is trying to close this tab. Do you want to close this tab? [OK] [Cancel] The webpage you are viewing is trying to close this tab. Do you want to close this tab? [OK] [Cancel] et mon téléchargeur est inaccessible à cause de l’ setEnabled(false) et annulé à cause de l’appel cancel() .

Ce que je recherche, c’est la même fonctionnalité, juste dans IE. Je sais qu’il existe de nombreux problèmes dans IE avec des événements tels que onbeforeunload qui déclenchent différentes réactions, mais j’ai vérifié tous ces problèmes sur mon site et je n’ai rien trouvé. En ligne, je n’ai rien trouvé qui traite du type de problème que je rencontre.

J’ai essayé d’encapsuler la fonction onbeforeunload dans différentes choses telles que la fonction de chargement ci-dessus ainsi que $(document).ready() , mais elles me posent les mêmes problèmes ou en créent de nouveaux.

Vérifiez la documentation ridicule de Microsoft Ensuite, assurez-vous qu’aucun des codes que vous utilisez ne fait quoi que ce soit qu’ils énumèrent comme déclencheur pour invoquer beforeunload , ce qui inclut plusieurs choses qui ne déchargent pas réellement la page (allez à Microsoft!)