如何禁用 Firefox 中的“离开页面”确认对话框?

Posted

技术标签:

【中文标题】如何禁用 Firefox 中的“离开页面”确认对话框?【英文标题】:How do I disable the "Leave page" confirmation dialog in Firefox? 【发布时间】:2022-01-19 18:27:26 【问题描述】:

我的Vue 应用程序中有以下代码,用于检测用户何时关闭选项卡:

onBeforeUnload() 
  window.onbeforeunload = null;
  return undefined;

禁用“离开页面”确认对话框在 Chrome 中有效,但在 Firefox 中无效。这是为什么?如何禁用 Firefox 上的确认对话框?

编辑 1: 添加和删除 beforeunload 监听器

created() 
    window.addEventListener('beforeunload', this.onBeforeUnload);
,
beforeDestroy() 
    window.removeEventListener('beforeunload', this.onBeforeUnload);

【问题讨论】:

某些东西可能是用window.addEventListener() 添加确认,而不是分配给window.onbeforeunload。除非您知道所添加函数的名称,否则无法删除它。 你可以通过给它分配一个空函数来覆盖它 @Barmar 我在我的帖子中添加了一个编辑,其中包含addEventListener 用于我的Vue 应用程序。 我认为应该可以。 @Barmar 它适用于 Chrome,但不适用于 Firefox。 【参考方案1】:

将我的 onBeforeUnload 方法更改为此解决了问题:

onBeforeUnload(e) 
  window.onbeforeunload = () => ;
  delete e.returnValue;

【讨论】:

以上是关于如何禁用 Firefox 中的“离开页面”确认对话框?的主要内容,如果未能解决你的问题,请参考以下文章

如何防止 Jquery 对话框离开页面?

如何在 Twitter Bootstrap 中同时打开两个模态对话框

Javascript关闭IE6,IE7,IE8和Firefox没有确认框?

react中实现路由切换时离开页面确认弹窗提示

如何在 Mozilla Firefox 中禁用 CORS?

离开编辑的html表单前提示确认