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(`其他页面都已经关闭`)
}
}
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
3 回答5.1k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
直接监听不了, 也许这个可以派上用场
https://developer.mozilla.org...