📜  如何在 JavaScript 中检测浏览器或标签页关闭?

📅  最后修改于: 2022-05-13 01:56:43.956000             🧑  作者: Mango

如何在 JavaScript 中检测浏览器或标签页关闭?

可以使用 beforeunload 事件检测浏览器中关闭的选项卡或窗口。这可用于在页面上未保存某些数据或用户通过关闭选项卡或浏览器错误地导航离开当前页面的情况下提醒用户。

addEventListener() 方法用于在某个事件发生时设置一个函数。 beforeunload 事件在窗口及其资源被卸载之前触发。触发此事件时,网页可见,此时该事件仍可取消。

事件处理程序应调用 preventDefault() 以根据规范显示确认对话框。如果用户希望继续到新页面,则导航到新页面,否则取消导航。但是,较旧的浏览器可能不支持此方法,并且使用了一种遗留方法,其中事件处理程序必须返回一个字符串。这个返回的字符串可以是空的。

除非用户与页面进行了交互,否则某些浏览器可能不会决定显示任何确认框。这用于防止不需要的或恶意的网站创建不必要的弹出窗口。用户可能必须与页面交互才能看到确认消息。

此方法适用于检测选项卡何时关闭或浏览器何时关闭。

句法:

window.addEventListener('beforeunload', function (e) {
    e.preventDefault();
    e.returnValue = '';
});

例子:



  

    
        How to detect browser or tab closing
    

  

    

        GeeksforGeeks     

           Detect browser or tab closing            

        The beforeunload function is triggered         just before the browser or tab is to be         closed or the page is to be reloaded.         Modern browsers require some interaction         with the page, otherwise the dialog box         is not shown.     

           
             
                                   

输出:

  • 在导航选项卡之前:
    导航前
  • 尝试离开页面后:
    休假后
  • 尝试重新加载页面后:
    重载后
  • 尝试关闭浏览器后:
    关闭浏览器后

JavaScript 以网页开发而闻名,但它也用于各种非浏览器环境。您可以按照这个 JavaScript 教程和 JavaScript 示例从头开始学习 JavaScript。