js 怎么判断用户关闭了浏览器

2021-09-15 09:19:54 +08:00
 aizya

各位大哥,请问一下使用 js 怎么判断用户关闭了浏览器, 我现在用的是 window.onbeforeunload,但是没办法区分 tab 页面关闭、刷新和浏览器关闭。 求教。

10386 次点击
所在节点    JavaScript
64 条回复
Yvette
2021-09-15 11:07:48 +08:00
dfkjgklfdjg
2021-09-15 11:24:16 +08:00
单纯区分浏览器刷新和关闭页面就好了,关注是否关注了浏览器是什么鬼,和你没关系啊。
statement
2021-09-15 11:26:47 +08:00
遇到过相同需求 B 端产品可以解决 用 app 模式就行 C 端监测心跳不准确
wolfan
2021-09-15 11:27:45 +08:00
不如断定是否重新打开了浏览器。
而且像 edge 内置了休眠,长时间不活动页面会被主动休眠的。
yousabuk
2021-09-15 11:29:36 +08:00
你得像网银控件那么干
hanssx
2021-09-15 11:32:44 +08:00
websocket 心跳
shyling
2021-09-15 11:56:46 +08:00
每个页面连个 ws 。。全断了就当关浏览器了
GeruzoniAnsasu
2021-09-15 12:04:04 +08:00
大胆一点,快进到产品包一个有后门的浏览器
TomChaai
2021-09-15 12:24:35 +08:00
这个问题等效于“电脑怎么知道用户拔了电源”。
要么时刻后台刷新,长时间断开视作关闭,要么非正常 exit,下次再上线的时候处理
sha851092391
2021-09-15 12:36:58 +08:00
这个需求很简单吧,在 window.onbeforeunload 弹出对话框,询问用户 “请选择你关闭的原因:1 、标签页关闭; 2 、刷新; 3 、浏览器关闭; 4 、不告诉你”,这样实现还合法,完美~
SixGod66
2021-09-15 12:42:06 +08:00
js 设置没有过期时间的 cookie,在浏览器关闭时会自动清空。sessionStorage 在最新的 Chrome 中已经无法跨标签共享数据了
meiyoumingzi6
2021-09-15 13:25:12 +08:00
js 怎么感知电脑关闭了? 手动狗头
2i2Re2PLMaDnghL
2021-09-15 13:25:40 +08:00
信不信我把宇宙停了三十年再给你继续?没错,正好当你看到这句话的时候。
你怎么检测到宇宙停了?
外部可以内视,但内部不可外视
kisshere
2021-09-15 14:39:32 +08:00
ws,或者 Ajax 心跳,后端参与才行
Justin13
2021-09-15 14:50:41 +08:00
这要能区分出来,那不就是 bug 了么
afirefish
2021-09-15 15:03:21 +08:00
ws+心跳,断开了就是关闭了
qwerthhusn
2021-09-15 15:20:44 +08:00
死刑犯怎么判断自己还有没有被枪毙
WordlessEcho
2021-09-15 15:24:40 +08:00
我在前端写了一个删除撤销的功能(就是延迟几秒再删除),但是页面关闭了之后删除请求就发不出去了(
zhw2590582
2021-09-15 15:25:28 +08:00
我怎么判断我睡着了
ws52001
2021-09-15 15:59:53 +08:00
这个要求有点过分的。。

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

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

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

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

© 2021 V2EX