我有一小段javascript代码,旨在打开两个或更多选项卡。在Firefox和IE中运行良好,但是Chrome会将第二个选项卡打开为新窗口而不是选项卡。它不依赖于URL,因为我已经尝试了两个相同的URL。第一个在选项卡中打开,第二个在新窗口中打开。
这是我的代码片段:
for(var i=0 ; i<sites.length ;i++)
{
window.open(sites[i].Url);
}
我有一小段javascript代码,旨在打开两个或更多选项卡。在Firefox和IE中运行良好,但是Chrome会将第二个选项卡打开为新窗口而不是选项卡。它不依赖于URL,因为我已经尝试了两个相同的URL。第一个在选项卡中打开,第二个在新窗口中打开。
这是我的代码片段:
for(var i=0 ; i<sites.length ;i++)
{
window.open(sites[i].Url);
}
如果是用户生成的操作,Chrome只会自动在一个新标签页中打开URL,并限制每个用户操作只能打开一个新标签页。在其他情况下,该URL将在一个新窗口中打开(顺便说一句,这在Chrome上默认被阻止)。
window.open必须在由用户操作(例如onclick)触发的回调函数中调用,才能使页面在新标签页中而不是新窗口中打开。
在您的示例中,您尝试在用户操作时打开N个标签页。但是,只有第一个标签页会在新标签页中打开(因为它是用户生成的操作)。此后,任何其他URL都将在一个新窗口中打开。
类似问题:force window.open() to create new tab in chrome(请参见maclema的答案)。
var sites = [{"url" : "http://www.google.com"} , {"url" : "http://www.yahoo.com"} , {"url" : "http://www.msn.com"}];
console.log(sites);
for( var i=0 ; i < sites.length ;i++) {
(function(i) {
console.log(i);
window.open(sites[i].url , "_blank");
})(i);
}
它可以在Chrome浏览器中打开新标签页的URL。