窗口对象的焦点方法在 IE 中不起作用(2020)

Focus method from window object doesn't work in IE(2020)

提问人:Georgian Stan 提问时间:9/16/2020 更新时间:9/17/2020 访问量:40

问:

MDN 说 window.focus() 与 IE https://developer.mozilla.org/en-US/docs/Web/API/Window/focus 兼容。

但是如果我打开IE并编写

x=window.open('https://blank.org')

在我回到主选项卡后,我不起作用。x.focus()

我找到了几个类似的帖子,但它们都很旧,那里提到的信息已经过时了。

这是默认发生的,还是 IE 设置?

JavaScript Internet-Explorer DOM

评论

0赞 Jaromanda X 9/16/2020
您的代码是否适用于现代浏览器?
0赞 Georgian Stan 9/16/2020
是的,它适用于所有这些
0赞 Jaromanda X 9/16/2020
您是否在浏览器开发人员工具控制台中遇到错误?您是否阅读了您发布的该页面的部分,该部分说它可能会由于用户设置而失败,并且在此方法返回之前不能保证窗口位于最前面 - 所以,是的,可能有一个 IE 设置
0赞 Georgian Stan 9/16/2020
控制台中没有错误。在IE设置中,我选中了“创建新选项卡时始终切换到新选项卡”选项,如旧帖子中建议的那样,但不起作用。
0赞 Jaromanda X 9/16/2020
好吧,IE 已经很老了 - 也许其他地方有不同的设置,比如在 MSPaint 或其他东西中(开玩笑,但 Windows 确实对设置做了一些奇怪的事情)

答:

1赞 Yu Zhou 9/17/2020 #1

我可以在 IE 11 中重现该问题。我搜索了文档,发现可能是由于一些安全问题,该方法无法在IE 8 +中使用。您可以参考这篇文章

Windows Internet Explorer 8 及更高版本。focus 方法不再将子窗口(例如使用 open 方法创建的子窗口)置于前台。

它可以在现代浏览器中工作,因为它们具有与 IE 不同的引擎,因此该功能可以工作。