2017-03-11 80 views
0

參考this SO question,我試圖使我的網站工作,以便任何外部鏈接在新選項卡中打開。jQuery添加目標_blank不在新選項卡中打開

上述問題的每個答案的jQuery作品(意思是我看到target="_blank"被添加到外部鏈接,當我使用Chrome瀏覽器或Safari的檢查器,但點擊鏈接本身不會在新標籤頁或新窗口中打開。

擁有現代化的瀏覽器改變,使得這一功能不再起作用還是我失去了別的東西

更新:??每@哈坎 - fostok的要求,這裏是有關的代碼:

JS :

$(function() { 
    $('a').attr('target', function() { 
    if(this.host == location.host) return '_self' 
    else return '_blank' 
    }); 
}); 

鏈接(如圖Chrome檢查):

<a href="http://espn.com" target="_blank">ESPN</a> 

更新2:我不知道這個問題,但應用程序是Rails的4.2.7.1,運行的jQuery 2.2.4 。

+0

能否請您提供完整版的「錨的HTML元素?這應該沒有問題 –

+0

請嘗試使用'prop'而不是'attr'設置'target'。屬性是相應HTML元素實例的* initial *值。 –

回答

1

通常,如果您想要修改現有HTML元素的運行時屬性,則必須使用prop函數而不是attr。請參閱文檔here

的差異在簡單的話是prop設置HTML元素的對應的屬性,而attr的屬性值。屬性值是運行時屬性的初始值。

$(function() { 
    $('a').prop('target', function() { 
    if(this.host == location.host) return '_self' 
    else return '_blank' 
    }); 
}); 
+0

剛剛嘗試過 - 它沒有奏效。仍然只是在Chrome和Safari中打開相同的窗口。 – CDub

+0

然後請嘗試創建一個可以複製您的問題的jsfiddle,以便我們可以查看它。 –

+0

另請注意,在某些本地設置或情況下,瀏覽器可能會覆蓋此設置。因此,爲了測試它,嘗試創建兩個靜態鏈接(不帶'jQuery'),以便您可以看到它是否可用。 –