[英]Need to make a url query string persist across a link
所以,我发现了这个类似的要求,但海报回答了自己的细节:
基本上,我有一个事件管理网站,我可以编辑HTML和JavaScript,但不是PHP。 我正在设置通过链接传递折扣代码以用于联盟会员跟踪。 系统已允许以下列形式在查询中传递代码:
https://www.example.com/reg/newreg.php?eventid=89335&discountcode=code
但
需要注意的是,系统只允许将人直接链接到注册过程,如上所示。 由于没有人想要在没有看到活动细节的情况下买票,这几乎是无用的。 主页的地址采用以下形式:
https://www.example.com/home/89335
但是当我尝试将&discountcode = code附加到地址时,查看字符串会在单击注册链接并转到注册页面时丢失。
有关如何处理这个的任何建议?
谢谢!
您可以尝试解析包含href的所有a-tags并使用javascript更新href。
如果你可以使用jQuery,你可以这样做(完全未经测试,所以这不能直接工作,但你应该找到解决方案:))
要获取url param,您可以使用此处的解决方案: https : //stackoverflow.com/a/5158301/2753126
function getParameterByName(name) {
var match = RegExp('[?&]' + name + '=([^&]*)').exec(window.location.search);
return match && decodeURIComponent(match[1].replace(/\+/g, ' '));
}
jQuery(document).ready(function ($) {
var persistedQueryParam = getParameterByName('discountcode');
if (persistedQueryParam && persistedQueryParam.length > 0) {
$('a[href]').each(function () {
var elem = $(this);
var href = elem.attr('href');
elem.attr('href', href + (href.indexOf('?') != -1 ? '&' : '?') + 'discountcode=' + persistedQueryParam);
});
}
});
只需用您的真实参数名称替换'discountcode'字符串即可。
希望有所帮助。
最好的问候,克里斯
更新 :添加了查询字符串和'?' /'和'处理。
更新2 :从prop更改为attr。
更新3 :从'param'名称更改为'discountcode'。
Uüdate4 :添加长度检查@ persistedQueryParam,最后有机会测试脚本:)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.