我正在尝试使用jQuery调用浏览器的onbeforeupload事件,如下所示: -
<script type="text/javascript">
$(document).ready(function (){
$(window).trigger('beforeunload');
})
</script>
它不会显示浏览器的默认onunload事件确认框,这意味着beforeunload事件未被触发。
如何触发beforeunload事件?
由于
答案 0 :(得分:1)
为什么您认为显示确认对话框是默认行为?
API说:
当此事件返回非void值时,系统会提示用户 确认页面卸载。在大多数浏览器中,返回值 事件显示在此对话框中。在Firefox 4及更高版本中返回 字符串不会显示给用户。相反,Firefox会显示 字符串&#34;此页面要求您确认是否要离开 - 您输入的数据可能无法保存。&#34;见bug 588292。
自2011年5月25日起,HTML5规范声明要调用 window.alert(),window.confirm()和window.prompt()方法可能是 在此活动期间被忽略。有关更多信息,请参阅HTML5规范 的信息。
另请注意,各种移动浏览器会忽略该事件的结果 (也就是说,他们不会要求用户确认)。 Firefox有一个 在about:config中隐藏的偏好做同样的事情。本质上这个 表示用户始终确认可以卸载文档。
你可以而且应该通过window.addEventListener()来处理这个事件 和beforeunload事件。那里有更多文档。
因此,您需要事先为事件添加处理程序:
$(window).on('beforeunload', function(){
...
});
其他方式: