首页 > 解决方案 > 在 Windows 10 的 Edge 中打开打印对话框时,Document.hasFocus() 始终返回 true

问题描述

我试图使用 window.setInterval() API 来检查document.hasfocus()的结果。通常,当我们点击另一个浏览器选项卡或另一个应用程序时,一个页面的 document.hasfocus() 将返回false。但是,当我尝试在 Edge 中打印网页并打开打印对话框时,我发现document.hasfocus() 总是返回 true,它不应该是,因为打印对话框不属于网页。这只发生在Windows 平台上(它在 Mac 的 Edge 上运行良好)。事实上,这也发生在 Windows10 的 Chrome 上。

重现步骤:

  1. 使用 Edge 打开任何网页。
  2. 打开 devtools 并继续检查 document.hasFocus()。
  3. 打印网页并显示 Edge 的打印对话框。
  4. document.hasFocus() 无论我们点击到哪里(另一个选项卡或另一个应用程序),总是显示为真。

我不确定这是 Edge 还是 Web API 的错误,所以我想我应该在这里提交一个问题以寻求帮助。任何可以解决此问题的解决方法?提前感谢您的帮助。

标签: google-chromemicrosoft-edgewebapi

解决方案


推荐阅读