2014-10-31 38 views
0

我是新來寫我自己的JavaScript,但已成功地使用url參數添加CSS和一個類到我的網頁(感謝stackoverflow的偉大答案)。然而,接下來,我需要將相同的URL參數附加到網頁上的所有鏈接,這樣,如果用戶點擊一個鏈接,同樣的參數去到下一個頁面:如何保留一個url參數到下一頁

<script type="text/javascript"> 
    function getQueryVariable(variable){           
    var query = window.location.search.substring(1); 
    var vars = query.split("&"); 
    for (var i=0;i<vars.length;i++) { 
      var pair = vars[i].split("="); 
      if(pair[0] == variable){return pair[1];} 
    } 
    return(false); 
} 

if (getQueryVariable("code")=="awesome"){ 
document.getElementById("copy").style.color="blue"; 
document.getElementById("coupon_code").className = "plug_coupon"; 
}; 

What I need: 
if (getQueryVariable("code")=="awesome"){ 
    append ?code=awesome to the href - how to do? 
}; 

    </script> 

謝謝!

P.S.更好的辦法是隻在鏈接包含我的域名的情況下追加鏈接,而不是鏈接在我的網站外(例如廣告)。

回答

2

選擇通過他們你的所有鏈接,然後循環像這樣(用了jQuery):

$('a').each(function() { 
    $(this).attr('href', this.href + myVar); 
}); 

如果要檢查僅域:

var comp = new RegExp(location.host); 
$('a').each(function() { 
    if(comp.test($(this).attr('href'))){ 
     $(this).attr('href', this.href + myVar); 
    } 

}); 
+0

這適用於獨立的,但如果我放在我的'if'語句,如上所述,它不會。我在插入'if'時是否缺少語法? Tx – 2014-10-31 03:16:03

+0

對不起,但我不明白你的意思。 – 2014-10-31 03:55:05

0

如果您不能使用jQuery嘗試一個while循環:

var p = 'myURLParameter'; 
var i = 0, t; 
while(document.body.getElementsByTagName('a') [i++]) { 
    t = this.getAttribute("href"); 
    this.href = t + "?parameter=" + p; 
} 
var p = 'myURLParameter'; 
var i = 0, t; 
while(document.body.getElementsByTagName('a') [i++]) { 
    t = this.getAttribute("href"); 
    this.href = t + "?parameter=" + p; 
} 
相關問題