jQuery:动态地将UTM参数传递给页面中的链接

时间:2014-07-18 15:16:41

标签: jquery html parsing hyperlink

我希望使用jQuery动态地在我的页面中添加一个链接,其中包含来自当前URL的UTM信息。

例如:

我当前的网页网址可以包含许多不同的UTM参数,但我想解析“来源”和“内容”之间的信息。然后我想将这些参数传递给页面中给出以下参数的链接。

当前页面网址为:

www.current-page.com/?Campaign=Test&Medium=Email&Source= 我%通告&安培;内容=安培;期限=

默认情况下,号召性用语按钮/链接指向以下内容:

www.next-page.com?的源=网站

我想解析当前网址的我的%20Newsletter 部分,然后将按钮/链接href从source = website更改为 source = My%20Newsletter

我有以下代码,但仍需要一些工作。

var tracking_param = "source=My%20Newsletter";
$('a.my-class').each(function() {
  var param_linker;
  var href = $(this).attr('href')
  if(href !== undefined) {
  if(href.indexOf('?') >=0) { 
    param_linker = "&"
  }
  else {
    param_linker = "?"
  }
  var final_url = href + param_linker + tracking_param;
  $(this).attr('href', final_url);
  }
});

非常感谢任何帮助,谢谢!

1 个答案:

答案 0 :(得分:0)

我认为这应该适合你:

$('a.my-class').each(function() {
    var href = $(this).attr('href')
    if(href !== undefined) {
        var url = document.URL;
        int index = url.indexOf("Source=");
        if(index != -1){
            url = url.substr(index + 7) // 7 = length of "Source="
            indexx = url.indexOf("&");
            if(indexx != -1)
                url = url.substr(0, indexx + 1);
            // now url contains the value
            href = href.replace("website", url);
            $(this).attr('href', href);
        }
    }
});