窗口.chrome选项卡/窗口中的打开行为

window.open behaviour in chrome tabs/windows

本文关键字:窗口 chrome 选项      更新时间:2023-09-26

我有一点javascript打算打开两个或更多的选项卡。这在FF和IE中工作得很好,但chrome在新窗口中打开第二个而不是选项卡。它不依赖于url,因为我已经尝试过两个相同的url。第一个在选项卡中打开,第二个在新窗口中打开。

下面是我的代码片段:
for(var i=0 ; i<sites.length ;i++)
{
    window.open(sites[i].Url);
}

Chrome只在用户生成操作时自动在新选项卡中打开URL,每个用户操作限制为一个选项卡。在任何其他情况下,URL将在一个新窗口中打开(顺便说一句,这是Chrome默认阻止的)。
窗口。Open 必须在回调中调用,该回调由用户操作(例如onclick)触发,以便页面在新选项卡中打开,而不是在窗口中打开。

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

类似的问题:强制window.open()在chrome中创建新的选项卡(见答案由maclema)

我遇到了这个问题JavaScript中的(function(){})()构造是什么?它解释了生命。我觉得这个可以再用一遍。请原谅我,我对javascript没有深入的了解。但我试了如下,它的工作。

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。