onBeforeUnload处理程序在IE中表示null

15 javascript jquery

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

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

这在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';
   }
});
Run Code Online (Sandbox Code Playgroud)

Jon*_*Jon 21

删除return null线,它应该是罚款(在Javascript nullundefined是不同的东西).

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