2013-05-17 265 views
1

我需要一個旨在打開特定元素中的所有鏈接的腳本,我需要它們在新標籤中打開。我有下面的代碼,它打開所有的鏈接,但在新窗口中,而不是在標籤。作爲標籤打開多個鏈接

可以做到這一點嗎?

$('#result_list tbody a').each(function() { 
    var $this = $(this); 
    $this.attr('target', '_blank'); 
    $this.get(0).click(function() { 
     window.open(this); 
     window.focus(); 
     return false; 
    }); 
}); 
+0

請,請[請勿使用target = _blank](http://www.thatwebguyblog.com/post/dont_use_target_blank/)。如果您的用戶希望在新窗口中顯示內容,他們會在新窗口中打開它。讓他們做出選擇。這就是說,據我所知,你無法控制如何創建標籤和窗口。這取決於用戶瀏覽器中的設置。有些瀏覽器甚至沒有製表符。 – FireCrakcer37

回答

1

我認爲你不需要target =「_ blank」屬性。默認情況下,在新窗口中打開window.open。大多數現代瀏覽器將打開鏈接到一個新的標籤,而不是一個新的窗口。

$('#result_list tbody a').each(function() { 
    var $this = $(this); 
    $this.get(0).click(function() { 
     window.open(this); 
     window.focus(); 
     return false; 
    }); 
}); 

您試過了哪個瀏覽器?

+1

這對我來說不適用於Chrome。當自動觸發更多的點擊時,只有第一個鏈接在新標籤中打開,其他鏈接在彈出窗口中打開。 –

+0

我有同樣的問題,它也不適用於我。該解決方案在Firefox中運行。但在Chrome中,它只會打開第一個鏈接。 – user1763581

+0

對不起,我只是想通了。 Chrome會自動阻止多個彈出窗口,並詢問用戶是否要打開下一個(或取消阻止整個網站的彈出窗口)。可悲的是,Chrome的問題只是地址欄中的一個小按鈕,所以用戶通常不會注意到它。 – user1763581