jQuery以编程方式触发beforeunload事件

时间:2016-02-06 12:53:05

标签: javascript jquery javascript-events onbeforeunload

我正在尝试使用jQuery调用浏览器的onbeforeupload事件,如下所示: -

<script type="text/javascript">

$(document).ready(function (){
    $(window).trigger('beforeunload');
})

</script>

它不会显示浏览器的默认onunload事件确认框,这意味着beforeunload事件未被触发。

如何触发beforeunload事件?

由于

1 个答案:

答案 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(){
   ...
});

其他方式:

相关问题