2011-02-28 46 views
273

我有一個來自第三方開發人員的JavaScript文件。它有一個鏈接,用目標替換當前頁面。我想要在新標籤中打開此頁面。JavaScript:location.href將在新窗口/標籤中打開?

這是我到目前爲止有:

if (command == 'lightbox') { 
location.href="https://support.wwf.org.uk/earth_hour/index.php?type=individual"; 
} 

誰能幫助我嗎?

回答

677
window.open(
    'https://support.wwf.org.uk/earth_hour/index.php?type=individual', 
    '_blank' // <- This is what makes it open in a new window. 
); 
+78

值得一提的JavaScript單擊它:是否創建一個新的標籤或窗口,通過瀏覽器** **決定(設置)。 – jAndy 2011-02-28 12:25:55

+3

@alex我編輯了這個答案,使重要的位可讀。如果您不贊同我的格式,我是否可以建議縮短網址以便第二個參數適合於未滾動的區域? – Phrogz 2011-09-20 17:51:32

+3

@Phrogz我* *認可你的格式:) – alex 2012-07-05 00:25:53

8

您可以使用window.open('https://support.wwf.org.uk/earth_hour/index.php?type=individual');在新窗口中打開它。如果您想在新選項卡中打開它,請在兩個選項卡中打開當前頁面,然後使腳本運行,以便獲取當前頁面和新頁面。

11

如果您想使用location.href來避免彈出問題,您可以使用空的<a> ref,然後使用javascript單擊它。

像在HTML

<a id="anchorID" href="mynewurl" target="_blank"></a> 

然後如下

document.getElementById("anchorID").click(); 
+6

我對這個解決方案充滿希望,但它似乎仍然觸發彈出窗口(至少在Chrome中)。我有一種感覺,瀏覽器意識到這是一個JavaScript點擊並以不同的方式處理它。 – 2014-10-01 12:44:37

+0

謝謝Nathan。你很正確。您仍然會看到彈出窗口消息。我以爲我已經治癒了它。理論上它應該起作用。 Andrew – 2015-03-25 16:35:12

+1

'$(「#anchorID」)[0] .click();'在jQuery中使用此解決方案。 – theBell 2016-09-22 10:34:25

相關問題