如何将当前URL参数添加到页面上的所有链接

时间:2019-06-18 03:22:51

标签: javascript

我对Javascript不确定-希望有一种快速的方法来从当前URL中获取参数并使用javascript将其添加到页面上的所有链接。

例如当前URL www.website.com/salespage?affiliate_id=1234 然后将affiliate_id=1234添加到页面上所有链接的末尾,即 www.website.com/orderpage?affiliate_id=1234www.website.com/orderpage2?affiliate_id=1234

我一直在搜索javascript代码,但发现有一些捕获了现有参数,有的则将参数插入URL,但又没有如何使它们全部协同工作?

<script>
  function getUrlParam(affiliate_id, defaultvalue){
    var urlparameter = defaultvalue;
    if(window.location.href.indexOf(parameter) > -1){
        urlparameter = getUrlVars()[parameter];
        }
    return urlparameter;
}

  var addthis_share = {
     url_transforms : {
         add: {
             affiliate_id: urlparameter,
         }
     } 
} 
</script>

我希望更新URL链接,例如www.website.com/orderpage?affiliate_id=1234 目前根本无法正常工作

2 个答案:

答案 0 :(得分:2)

您可以在jquery的document ready上实现它,循环each一个标记并更新href属性以添加您的参数

$(function() {
   $("a").attr('href', function(index, item) {
     return item + (item.indexOf('?') != -1 ? "&affiliate_id=1234" : "?affiliate_id=1234");
   });
});

$(function() {
   $("a").attr('href', function(index, item) {
     return item + (item.indexOf('?') != -1 ? "&affiliate_id=1234" : "?affiliate_id=1234");
   });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<h2>Test1</h2>
<a href="/test">Test1</a>
<h2>Test2</h2>
<a href="/test?param=1">Test2</a>

答案 1 :(得分:0)

如果只想使用JavaScript,则可以实现onload事件,并通过document.getElementsByTagName("a")获取所有标签,并使用for循环来更新参数。

更新:

如果要从当前网址获取会员ID,可以使用

function getParameterByName(name, url) {
    if (!url) url = window.location.href;
    name = name.replace(/[\[\]]/g, '\\$&');
    var regex = new RegExp('[?&]' + name + '(=([^&#]*)|&|#|$)'),
        results = regex.exec(url);
    if (!results) return null;
    if (!results[2]) return '';
    return decodeURIComponent(results[2].replace(/\+/g, ' '));
}

window.onload = function() {
 var anchors = document.getElementsByTagName("a");
 let affiliate_id = getParameterByName('affiliate_id');
 for (var i = 0; i < anchors.length; i++) {
    anchors[i].href += anchors[i].href.indexOf('?') != -1 ? "&affiliate_id=" + affiliate_id  : "?affiliate_id=" + affiliate_id;
 }
}
<h2>Test1</h2>
<a href="/test">Test1</a>
<h2>Test2</h2>
<a href="/test?param=1">Test2</a>