2013-04-08 182 views
1

我想更改頁面上的所有鏈接,它適用於沒有類的鏈接,但不適用於具有類的鏈接。更改頁面上的所有鏈接

這是我使用的代碼:

window.onload = function() { 
     /* onload code */ 

var anchors = document.getElementsByTagName("a"); 

for (var i = 0; i < anchors.length; i++) { 
    anchors[i].href = "http://www.example.com/?redirect=" + anchors[i].href 
} 
} 

它適用於鏈接,如:

<a id="box-left" href="http://www.google.com"></a> 

但是,這並不工作:

<a class="links" href="redirect.php?link=125411" onclick="launch();" target="_blank"></a> 
+0

嘗試使用第一錨[I] .removeAttribute( 「HREF」);然後設置它。 而不是window.onload使用document.onload可以被觸發。 如果您將代碼提供給jsfiddle或jsbin,會更好。 – Givi 2013-04-08 17:13:30

回答

0

我想那正確的功能應該是:

var anchors = document.getElementsByTagName("class"); 

window.onload = function() { 
    /* onload code */ 

var anchors = document.getElementsByTagName("a"); 

for (var i = 0; i < anchors.length; i++) { 
    anchors[i].href = "http://www.mysite.com/?redirect=" + anchors[i].href 
} 
} 
+0

你好,對不起有一個錯字,是的,我使用「a」而不是「class」,但它仍然不會改變使用class的鏈接。 – user1938320 2013-04-08 17:10:35

0

使用

var anchors = document.getElementsByTagName('a'); 

,而不是順便說一句,我建議你使用jQuery選擇DOM元素。

+0

你好,對不起,有一個錯字,是的,我使用「a」而不是「類」,但它仍然不會改變使用類的鏈接。 – user1938320 2013-04-08 17:11:05

+0

在我的下一個回答中找到我的建議 – speedingdeer 2013-04-08 17:17:10

0

我測試了它發佈的代碼,它爲我工作。
我把javascript放在標籤和正文中的鏈接中。
也許頁面上還有其他內容會干擾。

+0

難道是我想要更改鏈接的頁面在iframe中嗎? – user1938320 2013-04-08 17:18:29

+0

我認爲CSS可以像我上面所寫的那樣混合一些東西。 JS也適合我 – speedingdeer 2013-04-08 17:20:33

+0

我不確定iFrame。您可以隨時檢查JavaScript是否被觸發,方法是在函數的開始處添加alert(),並檢查它是否在最後通過另一個警報完成。 – RacerNerd 2013-04-08 17:21:26

0

也許你有一些奇怪的CSS whick混合這個鏈接與這個類=「links」屬性?您也可以嘗試將類添加到這兩種鏈接並按類選擇。

var anchors = document.getElementsByClassName("dynamic_links"); 

<a id="box-left" class="dynamic_links" href="http://www.google.com"></a> 

<a class="links dynamic_links" href="redirect.php?link=125411" onclick="launch();" target="_blank"></a> 

讓我知道這件事怎麼樣?

0

如果您正在使用jQuery,它像這樣簡單:

$('a').attr("href", "http://www.google.com/") 
相關問題