繁体   English   中英

当页面被重新加载或导航到其他页面时,visibilitychange 触发

[英]visibilitychange fires when page gets reloaded or navigated to other page

  document.addEventListener("visibilitychange", onVisibilityChange, {
    passive: true,
  });

即使有人离开我的页面,这也会触发。 当然这是合乎逻辑的。 但是有没有办法检查是否有人导航离开?

编辑:我想要听的是用户切换到另一个选项卡或将 window 放在后台。 这与 visibilityChange 一起工作,但它也会在用户重新加载页面或在历史记录中来回导航时触发。 但这是我不想触发事件时的行为

您可以使用 setTimeout,setTimeout 中的代码不会在重新加载时运行。

  function handleVisibilityChange (e) {
    setTimeout(() => {
        if (document.visibilityState === 'hidden') {
            console.log('HIDDEN')
        } else {
            console.log('VISIBLE')
        }
    }, 0)
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM