我对Javascript不确定-希望有一种快速的方法来从当前URL中获取参数并使用javascript将其添加到页面上的所有链接。
例如当前URL www.website.com/salespage?affiliate_id=1234
然后将affiliate_id=1234
添加到页面上所有链接的末尾,即
www.website.com/orderpage?affiliate_id=1234
和www.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 目前根本无法正常工作
答案 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>