第一次之后多次调用window.open()失败

时间:2018-08-24 15:47:37

标签: javascript google-chrome

我有一个循环遍历多个URL并在新标签页中打开它们的脚本。它曾经可以工作,但现在仅打开第一个。甚至有一个w3schools测试编辑器据说可以打开多个窗口,并且在第一个窗口之后也会失败:

https://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_win_open6

但是,如果我逐步进入调试模式,并且每次都将焦点重新设置为原始选项卡,它将确实打开每个窗口。因此,我的问题是,如何打开多个窗口(选项卡),但使用原始脚本将焦点集中在窗口上?它曾经这样做,但是现在,一旦添加了新选项卡,它就会成为焦点,并且脚本停止打开窗口。这是完整的w3schools失败脚本:

<!DOCTYPE html>
<html>
<body>

<p>Click the button to open multiple windows.</p>

<button onclick="myFunction()">Open Windows</button>

<script>
function myFunction() {
    window.open("http://www.google.com/");
    window.open("https://www.w3schools.com/");
}
</script>

</body>
</html>

2 个答案:

答案 0 :(得分:1)

我想就像@Daniel Sharp所说的那样,Chrome中有一个安全功能。在FF和IE中都可以正常工作。

如果我按照以下步骤操作,它将起作用:

  1. 单击“打开窗口”(将打开一个新窗口
  2. 单击初始浏览器选项卡
  3. 单击页面上的某处(“打开Windows”按钮除外)
  4. 再次单击“打开Windows”(这一次它有效-两个窗口都已打开

答案 1 :(得分:1)

如另一个答案和注释中所述,它是一项安全功能。

但是值得添加的是,您可以禁用它(基于每个站点):只需单击地址栏右端的小“弹出窗口阻止程序”图标,然后从当前站点启用弹出窗口。 / p>

然后,根据需要随意拍摄window.open