阻止用户关闭选项卡或浏览器窗口[关闭]

Posted

技术标签:

【中文标题】阻止用户关闭选项卡或浏览器窗口[关闭]【英文标题】:Prevent user to close tab or browser window [closed] 【发布时间】:2016-07-11 08:30:04 【问题描述】:

是否可以在 window.onbeforeunload 上启动循环以在标签退出时一次又一次地打开相同的当前页面?检查以下代码,它的工作但浏览器阻止它作为弹出窗口打开。

    window.onbeforeunload = function(e) 
       window.open(document.URL,"_blank");
       return 'Dialog text here.';
    ;

https://jsfiddle.net/q9kd4b0x/

【问题讨论】:

不,不可能。 我很好奇目的?运行 Web 应用程序似乎是一种不道德的方式 它是用于学习目的。你我们专注于它的解决方案或可能的原因,为什么那不可能它会很好。以及它的公开讨论论坛? 允许这样做会构成浏览器安全问题。人们真的不喜欢网站做这样的事情,所以浏览器不允许这样做。 @SairaKanwal “我不是在问不允许这件事背后的原因。我在问“为什么不可能?”。 似乎是同一个问题? 【参考方案1】:

是否可以在 window.onbeforeunload 上启动循环以打开相同的 当前页面在标签退出时一次又一次?

是的。

为什么不可能?

但浏览器阻止它作为弹出窗口打开

在您正在测试javascript 的浏览器上,您的弹出窗口拦截器已打开,默认情况下会阻止此浏览器行为;或通过您实施的设置。

解决方案:在您正在查看https://jsfiddle.net/q9kd4b0x/ 的浏览器上关闭弹出窗口阻止程序。

一个新的windowtab 应该在每个onbeforeunload 事件中打开

【讨论】:

注意,在浏览器的铬settings -> Content settings -> Pop-ups 选择Allow all sites to show popups;或其他浏览器上的类似实现

以上是关于阻止用户关闭选项卡或浏览器窗口[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何在关闭浏览器选项卡或浏览器时插入数据[重复]

会话销毁或关闭浏览器选项卡或关闭浏览器后,使用Laravel 5.2执行注销

浏览器如何暂停/更改JavaScript时选项卡或窗口未激活?

如何在javascript中检测浏览器选项卡是不是关闭或浏览器窗口

使用 CodeceptJS 时如何打开新选项卡或窗口

Rails设计gem:强制注销浏览器选项卡关闭