【问题标题】:window.focus() in javascriptjavascript中的window.focus()
【发布时间】:2020-05-27 05:54:46
【问题描述】:

我有一个最新版本的 chrome 窗口(父窗口)。当我单击父窗口上的按钮时,应该打开一个新的第二个 chrome 窗口(子窗口)并且它应该在前面。当我第二次点击同一个按钮(在父窗口中)时,已经打开的子窗口应该在前面(焦点应该在子窗口中设置)。

问题: 第一次单击按钮时,我正在使用 "window.open(uri)" 打开一个新的 chrome 子窗口,并且它集中在前面。 第二次单击按钮时,我使用相同的 "window.open(uri)" 将已经打开的 chrome 窗口带到 front 但这不起作用。要在子窗口上执行的操作正确发生并且填充的数据是正确的,但窗口没有出现在前面。

我曾尝试在按钮的onclick()事件中使用window.focus()、window.blur(),但都没有希望。

如果我能得到一些答案,不胜感激。

【问题讨论】:

  • 将子窗口保存在变量中并调用new_example_window.focus()
  • 你试过let w=window.open(uri)然后w.focus()?窗口中的页面是否与脚本来自同一来源?如果是这样,并且您可以控制页面,则可以在新窗口中执行<script>window.focus()</script>
  • 是的,我已经尝试过类似 function onclick() { var win = window.open(uri); win.focus();这也行不通。两个窗口都来自同一来源。第一次点击按钮时,它工作正常

标签: javascript


【解决方案1】:

试试这个

 window.open(
            "http://google.co.za", null,
            "toolbar=yes,titlebar=yes,status=yes,menubar=yes,fullscreen=yes,centerscreen=yes"
            );

当你点击按钮时,它会打开窗口,如果你再次点击按钮,它将把窗口放在前面。

【讨论】:

  • 任何人都可以解释或提供反馈为什么它得到-1
  • 谢谢阿迪亚。我已经尝试了上面的代码,但它没有奏效。 window.open() 是否有任何与 chrome 版本相关的限制?
  • @Gopinath 我不知道,我使用的是 chrome 版本 83.0.4103.61 (Official Build) (64-bit)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-27
  • 2010-10-30
  • 1970-01-01
  • 2011-02-01
  • 1970-01-01
相关资源
最近更新 更多