Le gestionnaire onBeforeUnload dit null dans IE

Mon application Web a ceci:

$(window).bind('beforeunload', function() { if(unSavedChanges == true) { return 'You have unsaved changes'; } return null; }); 

Cela fonctionne bien dans Safari et Firefox (à l'exception que Firefox ne montre pas mon message personnalisé dans sa boîte de dialogue OnBeforeUnload). Cependant, sur IE 8 sur Windows 7, il affiche toujours la notification onBeforeUnload, en particulier s'il n'y a pas de modifications non enregistrées, il serait simplement «nul». Comment puis-je empêcher IE d'afficher la notification onBeforeUnload lorsque l'utilisateur a tout enregistré et veut naviguer?

Selon la suggestion de Jon, j'ai supprimé la ligne return null , le code se lit maintenant

 $(window).bind('beforeunload', function() { if(unSavedChanges == true) { return 'You have unsaved changes'; } }); 

Supprimez la ligne return null et elle devrait être bien (dans Javascript null et undefined y a des choses différentes).

Par ailleurs, MDN dit que, pour une compatibilité maximale, vous devez accepter un paramètre d' event et configurer event.returnValue également.

J'utilise javascript normal pour cela et fonctionne bien

 function setConfirmUnload(on) { window.onbeforeunload = (on) ? unloadMessage : null; } function unloadMessage() { return 'Please stay on the page'; }