退出浏览器并关闭选项卡时发出警报

Posted

技术标签:

【中文标题】退出浏览器并关闭选项卡时发出警报【英文标题】:Alert on exit the browser and closing the tab 【发布时间】:2021-11-25 14:02:23 【问题描述】:

我尝试了 onbeforeunload,因为它需要一次用户交互才能调用,有没有什么方法可以在没有用户交互的情况下调用事件,因为用户在打开应用程序选项卡后退出浏览器。 或任何其他不使用 onbeforeunload 的解决方案,阻止用户退出浏览器。

window.onbeforeunload = function (event) 
    var message = 'Important: Please click on \'Save\' button to leave this page.';
    if (typeof event == 'undefined') 
        event = window.event;
    
    if (event) 
        event.returnValue = message;
    
    return message;
;

        $(document).ready(function() 
            $(".label").click(function()
            alert('label');
            window.onbeforeunload = null;
            
            ); 
             $(".new_cont").click(function()
            alert('new_cont');
            window.onbeforeunload = null;
            
            );
        )

【问题讨论】:

这能回答你的问题吗? Detect browser or tab closing 【参考方案1】:

在 FireFox 和 Chrome 中,您至少需要与页面进行一次交互。 由于此功能是为了避免丢失用户输入的数据,所以如果页面上没有发生任何操作意味着用户没有输入任何数据。

这是因为 onbeforeunload 附加到 的 window 对象上,当您卸载主页时,除非您将焦点放在此 iframe 上,否则不会触发此事件。

 <script type="text/javascript">
 window.onbeforeunload = function () 
     return "Did you save your stuff?"
 

供参考https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onbeforeunload

【讨论】:

以上是关于退出浏览器并关闭选项卡时发出警报的主要内容,如果未能解决你的问题,请参考以下文章

关闭运行颤振应用程序的浏览器选项卡时,有没有办法显示警告对话框?

关闭浏览器或选项卡时如何获取 Web 通知

关闭选项卡时如何防止调试器停止

关闭所有选项卡时删除/清除本地存储[重复]

bootstrap给选项卡增加关闭功能

在 Sencha Touch 2 中更改选项卡时发出 Ajax 请求