如何监听浏览器中同一域名的 tab 全部关闭?

2022-08-18 10:26:22 +08:00
 Jexxie

奇葩需求:所有这个网站的标签页 tab 全部关闭则退出登陆(调用 logout 接口)。

(以下代码是目前的实现,完全关闭浏览器后退出登陆)

 // 刷新和关闭网页都会触发 onunload, 因此用 sessionStorage 区分,浏览器完全关闭后会清空 sessionStorage
        sessionStorage.setItem('reloaded', 'yes');
        window.onunload = function(e) {
            if (sessionStorage.getItem('reloaded') == null) {
                fetch("/logout", {
                method: "POST",
                // keepalive 属性用于页面卸载时,告诉浏览器在后台保持连接,继续发送数据。开启了 keepalive 属性后,网页就算被关闭了,请求被会继续执行而不会中断。
                keepalive: true
            });
            }
        };

请问,有没有方法实现检测到所有同域标签页关闭的方法?

5568 次点击
所在节点    JavaScript
41 条回复
Jexxie
2022-08-24 17:30:01 +08:00
感谢大家,最后改需求了,沿用目前方案,遵循浏览器默认行为,完全关闭浏览器后退出登录。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/873662

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX