簡體   English   中英

chrome標簽/窗口中的window.open行為

[英]window.open behaviour in chrome tabs/windows

我有一小部分用於打開兩個或更多標簽的JavaScript。 這在FF和IE中工作正常,但chrome在新窗口中打開第二個而不是tab。 它不依賴於url,因為我用兩個相同的url嘗試了它。 首先在選項卡中打開,第二個在新窗口中打開。

這是我的代碼片段:

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

只有在用戶生成的操作時,Chrome才會自動在新標簽頁中打開網址,每個用戶操作僅限一個標簽。 在任何其他情況下,URL將在新窗口中打開(BTW,默認情況下在Chrome上被阻止)。
必須在回調中調用window.open ,該回調由用戶操作(例如onclick)觸發,以便在新選項卡而不是窗口中打開頁面。

在您的示例中,您嘗試在用戶操作時打開N個選項卡。 但只有第一個在新選項卡中打開(因為它是用戶生成的操作)。 之后,將在新窗口中打開任何其他URL。

類似的問題: 強制window.open()在chrome中創建新選項卡 (請參閱maclema的回答)

我遇到了這個問題JavaScript中的(function(){})()構造是什么? 其中給出了對IIFE的解釋。 我認為這可以用完了。 請耐心等待我對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的新標簽中打開網址。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM