在 Chrome 中的 window.open 之后,可见性 API 不起作用

Visibility API is not working after window.open in Chrome

我试图使用可见性 API,但它不适用于 child。要重现的最小示例:

<script>

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

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

</script>

在那之后,parent window 仍然打印“可见”-“隐藏”,但 child 仅在刷新时打印一次“隐藏”。

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

老实说,当我来到这个最小的复制品时,我被困住了,不知道去哪里挖掘。有什么想法可能是错误的吗?

我也被这个问题绊倒了。我认为这个错误是在 Chrome 84 中引入的。我用 83 版对其进行了测试,它按预期工作。当前的Canary-Build(版本86)也可以使用。