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 null
和undefined
是不同的东西)。
顺便说一下, MDN说为了获得最大的兼容性,你应该接受一个event
参数并设置event.returnValue
。
我使用普通的javascript,工作正常
function setConfirmUnload(on) { window.onbeforeunload = (on) ? unloadMessage : null; } function unloadMessage() { return 'Please stay on the page'; }