onBeforeUnload处理程序在IE中表示null

我的网络应用程序有这个:

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

这在Safari和Firefox中运行良好(除了firefox没有在onBeforeUnload对话框中显示我的自定义消息)。 但是在Windows 7上的IE 8上,它总是显示onBeforeUnload通知,特别是如果没有未保存的更改,它只会说“null”。 当用户保存所有内容并希望导航时,如何阻止IE显示onBeforeUnload通知?

根据Jon的建议,我删除了return null行,代码现在读取

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

删除return null行,它应该没问题(在Javascript nullundefined是不同的东西)。

顺便说一下, MDN说为了获得最大的兼容性,你应该接受一个event参数并设置event.returnValue

我使用普通的javascript,工作正常

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