我正在尝试使用jQuery在以下方式调用浏览器的onbeforeupload事件:-
<script type="text/javascript">
$(document).ready(function (){
$(window).trigger('beforeunload');
})
</script>
它不显示浏览器的默认onunload事件确认框,这意味着beforeunload事件不会被触发。
如何触发beforeunload事件?
您为什么认为显示确认对话框是默认行为?
API说:
当此事件返回非无效值时,系统会提示用户确认页面卸载。在大多数浏览器中,事件显示在此对话框中。在Firefox 4及更高版本中,返回字符串不显示给用户。取而代之的是,Firefox显示字符串“此页面要求您确认要离开-您输入的数据可能不会保存。”请参见错误588292。
自2011年5月25日起,HTML5规范指出window.alert(),window.confirm()和window.prompt()方法可能是在此事件期间被忽略。有关更多信息,请参见HTML5规范详细信息。
也请注意,各种移动浏览器都会忽略事件的结果(也就是说,他们不要求用户确认)。 Firefox有一个在about:config中的隐藏首选项执行相同的操作。本质上这意味着用户总是确认文档可以被卸载。
您可以并且应该通过window.addEventListener()处理此事件和beforeunload事件。那里有更多文档。
因此,您需要事先为事件添加处理程序:
$(window).on('beforeunload', function(){
...
});
其他方式: