蛮简单的东西,知道就会,不知道就不会,没什么逻辑可言。简单记录一下,只为加深点儿印象。
visibilitychange
visibilitychange可以监听到浏览器的切换标签页。
直接上代码:
<script>
document.addEventListener('visibilitychange', documentVisibilityChange)
function documentVisibilityChange() {
if(document.visibilityState === "hidden") {
console.log('当前页签隐藏,即打开新页签')
}
if(document.visibilityState === "visible") {
console.log('当前页签显示,即打开当前页签')
}
}
</script>
beforeunload
beforeunload可以监听到页面的关闭,页签切换不会触发
- 关闭浏览器窗口的时候触发
- 通过点击当前地址栏或收藏夹进入另一个页面时触发(注意不是打开新页签)
- 刷新浏览器时触发
- 重新赋值window.location.href的值的时候触发
- 通过 form input type="submit"按钮提交一个具有指定action的表单的时候触发(原生事件)
可能还有其他情况,大家感兴趣可以再去了解一下,我只是在浏览器刷新时用到了
<script>
window.addEventListener('beforeunload', windowBeforeUnload)
function windowBeforeUnload() {
console.log('触发beforeunload --->>>')
}
</script>