2014-10-31 98 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; 
} 
相关问题