您无法修改的默认对话框
onbeforeunload,因此最好的选择是使用它。
window.onbeforeunload = function() { return 'You have unsaved changes!';}将字符串分配给window.event的returnValue属性时,将出现一个对话框,为用户提供保留在当前页面上并保留分配给它的字符串的选项。对话框中显示的默认语句“您确定要离开此页面吗?…按OK继续,或按Cancel保留在当前页面上。”无法删除或更改。
问题似乎是:
- 当
onbeforeunload
被调用时,它会采取的处理程序的返回值window.event.returnValue
。 - 然后它将返回值解析为字符串(除非它为null)。
- 由于
false
被解析为字符串,因此对话框将触发,然后传递适当的true
/false
。
结果是,似乎没有一种分配
false方法
onbeforeunload来阻止它与默认对话。
jQuery的其他说明:
- 在jQuery中设置事件 可能会 出现问题,因为这
onbeforeunload
也会导致其他事件发生。如果您只希望发生卸载事件,那么我会坚持使用普通的Javascript。 - jQuery没有捷径,
onbeforeunload
因此您必须使用通用bind
语法。$(window).bind('beforeunload', function() {} );
:自chrome-51起,onbeforeunload对话框中的自定义消息已弃用(cf:发行说明])



