使用window.open重复产生意外结果

时间:2014-05-30 07:31:06

标签: javascript html

我的浏览器允许任何网站显示弹出窗口(使用window.open制作)。

window.open("http://www.google.com/","_blank");

以上代码在新标签页上打开google.com


然而,当我像这样重复使用window.open时:

window.open("http://www.google.com/","_blank");
window.open("http://www.facebook.com/","_blank");
window.open("http://www.example.com/","_blank");

现在,google.com在新标签页上打开,而facebook.comexample.com则作为弹出窗口打开。我实际上想要在新标签中打开3个链接,但我无法实现这一点。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

我很惊讶第二次和第三次打开了。 (它们不在Chrome上,它会阻止它们;但如果我禁用阻止程序,我会看到您描述的行为。)

您需要提供单独的UI元素(按钮,无论如何)以单独打开每个窗口,以便每个window.open调用由单独的最终用户操作触发,而不是打开几个窗口以响应单个用户操作。希望这能为您提供每个窗口所需的行为。虽然您无法控制是否在新窗口或选项卡中打开某些内容,但是大多数浏览器现在默认使用新选项卡(并且大多数都有用户可以选择更改它),除非您将第三个参数提供给{{1}在这种情况下,他们可以打开一个新窗口,而不是使用您在该参数中传递的设置。

由于Chrome通过第二次和第三次调用执行此异常操作,因此在大多数情况下,将自己限制为每个用户操作一个window.open应该有效,因为在大多数情况下,默认情况下是新选项卡,而不是新窗口