在 Chrome 中 window.open 之后 Visibility API 不起作用

A. *_*nko 7 javascript google-chrome visibilitychange

我试图使用 Visibility API,但它不适用于孩子。重现的最小示例:

<script>

document.onvisibilitychange = () => {
      console.log(document.visibilityState);
    }

if (!window.opener) {
    window.open(window.location.href, '_blank');
}

</script>
Run Code Online (Sandbox Code Playgroud)

之后,父窗口仍然打印“可见”-“隐藏”,但子窗口仅在刷新时打印一次“隐藏”。

它可以在最新的 Opera 浏览器中正常工作,但不能在 Chrome 中正常工作

老实说,当我来到这个最小复制时,我被卡住了,不知道在哪里挖掘。任何想法可能是错误的?

小智 1

我也偶然发现了这个问题。我认为这个错误是在 Chrome 84 中引入的。我用版本 83 对其进行了测试,它按预期工作。当前的 Canary-Build(版本 86)也正在运行。