window.onunload只能监听一个tab,如何知道该网站的所有tab都关闭了?
可以通过 storage
事件实现。
在网页每次打开的时候,在 localStorage
中累加标记,比如
let num = localStorage.getItem('pageInstanceNum') || 0
num += 1
localStorage.setItem('pageInstanceNum', num)
然后监听页面关闭的事件
window.onbeforeunload = function (e) {
let num = localStorage.getItem('pageInstanceNum') || 0
num = num * 1 - 1
localStorage.setItem('pageInstanceNum', num)
}
最后就是你需要处理其他页面都已经关闭的逻辑了
window.onstorage = function(e) {
let num = localStorage.getItem('pageInstanceNum') || 0
if (num <= 1) {
console.log(`其他页面都已经关闭`)
}
}
13 回答12.7k 阅读
8 回答2.4k 阅读
2 回答5k 阅读✓ 已解决
7 回答1.8k 阅读
9 回答1.6k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
5 回答747 阅读
直接监听不了, 也许这个可以派上用场
https://developer.mozilla.org...