如何监听浏览器关闭事件

问题描述 投票:0回答:1

我需要在浏览器关闭窗口之前进行ajax,但我遇到了一些麻烦 'beforeunload' 事件在关闭和刷新时都会触发,并且如果用户不在页面上执行操作,则在最新的 chrom 浏览器中不会触发。 如何监听用户关闭窗口而不是刷新?

我的英文不好,谢谢理解

这不起作用

//   window.addEventListener('beforeunload', (e) => {
//     editPageUnLockApi(designId);
//   });
javascript browser
1个回答
0
投票

如果您想专门检测用户何时关闭窗口而不是何时刷新页面,则可以使用

unload
事件。但是,请记住,
unload
事件有其自身的局限性,并且可能无法在所有浏览器上一致地工作。

以下是如何使用

unload
事件的示例:

window.addEventListener('unload', function (event) {
    // Make your AJAX request here
    // Note: Asynchronous operations might not complete before the page is closed
});

但是,需要注意的是,使用

unload
事件时存在一些限制和注意事项:

  1. unload
    事件不保证在所有情况下都会执行。浏览器可能会选择不执行它,特别是当用户关闭窗口太快时。

  2. 由于 AJAX 请求的异步特性,请求有可能在页面关闭之前无法完成。

考虑是否有替代解决方案,或者是否可以以不同的方式处理您的用例,以确保更流畅的用户体验。如果您要执行的操作很关键,您可能需要考虑在用户与页面交互期间实现它,而不是依赖于页面卸载期间触发的事件。

© www.soinside.com 2019 - 2024. All rights reserved.