以编程方式在卸载事件之前查询触发器



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

<script type="text/javascript">
$(document).ready(function (){
    $(window).trigger('beforeunload');
})
</script>

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

如何触发卸载前事件?

为什么您认为显示确认对话框是默认行为?

该接口说:

当此事件返回非 void 值时,系统会提示用户 确认页面卸载。在大多数浏览器中,返回值 事件将显示在此对话框中。在 Firefox 4 及更高版本中返回的 字符串不会向用户显示。相反,Firefox 显示 字符串"此页面要求您确认是否要离开 - 您输入的数据可能无法保存。请参阅错误588292。

自 2011 年 5 月 25 日起,HTML5 规范规定调用 window.alert((、window.confirm(( 和 window.prompt(( 方法可以是 在此事件期间被忽略。请参阅 HTML5 规范了解更多信息 详。

另请注意,各种移动浏览器会忽略事件的结果 (也就是说,他们不要求用户确认(。火狐有一个 隐藏的首选项在 about:config 中也这样做。从本质上讲,这 表示用户始终确认文档可以卸载。

你可以并且应该通过 window.addEventListener(( 处理此事件 和之前卸载事件。那里提供了更多文档。

因此,您需要事先为事件添加处理程序:

$(window).on('beforeunload', function(){
   ...
});

其他方式:

  • 是否可以以编程方式触发 onbeforeunload 事件?
  • Javascript:以编程方式触发onbeforeunload/onunload事件

最新更新