chrome标签/窗口中的window.open行为

use*_*653 8 javascript google-chrome window.open

我有一小部分用于打开两个或更多标签的JavaScript.这在FF和IE中工作正常,但chrome在新窗口中打开第二个而不是tab.它不依赖于url,因为我用两个相同的url尝试了它.首先在选项卡中打开,第二个在新窗口中打开.

这是我的代码片段:

for(var i=0 ; i<sites.length ;i++)
{
    window.open(sites[i].Url);
}
Run Code Online (Sandbox Code Playgroud)

Bag*_*onè 12

只有在用户生成的操作时,Chrome才会自动在新标签页中打开网址,每个用户操作仅限一个标签.在任何其他情况下,URL将在新窗口中打开(BTW,默认情况下在Chrome上被阻止).必须在回调中调用
window.open,该回调由用户操作(例如onclick)触发,以便在新选项卡而不是窗口中打开页面.

在您的示例中,您尝试在用户操作时打开N个选项卡.但只有第一个在新选项卡中打开(因为它是用户生成的操作).之后,将在新窗口中打开任何其他URL.

类似的问题:强制window.open()在chrome中创建新选项卡 (请参阅maclema的回答)