Javascript 需要使url查询字符串在链接中保持不变
因此,我发现了类似的要求,但海报回答了自己,并详细说明了: 基本上,我有一个事件管理网站,可以编辑html和javascript,但不能编辑php。我正试图设置通过一个链接传递折扣代码,用于会员跟踪。系统已允许以以下形式在查询中传递代码: 但是 需要注意的是,系统仅在将此人直接链接到注册过程时才允许这样做,如上所示。由于没有人会想在没有看到活动细节的情况下买票,这几乎是无用的。网页地址的格式如下: 但是,当我尝试向地址追加&discountcode=code时,在单击注册链接并转到注册页面时,查询字符串丢失 对如何处理这个问题有什么建议吗Javascript 需要使url查询字符串在链接中保持不变,javascript,html,query-string,Javascript,Html,Query String,因此,我发现了类似的要求,但海报回答了自己,并详细说明了: 基本上,我有一个事件管理网站,可以编辑html和javascript,但不能编辑php。我正试图设置通过一个链接传递折扣代码,用于会员跟踪。系统已允许以以下形式在查询中传递代码: 但是 需要注意的是,系统仅在将此人直接链接到注册过程时才允许这样做,如上所示。由于没有人会想在没有看到活动细节的情况下买票,这几乎是无用的。网页地址的格式如下: 但是,当我尝试向地址追加&discountcode=code时,在单击注册链接并转到注册页面
谢谢 您可以尝试解析所有包含a href的a标签,并使用javascript更新href 如果您可以使用jQuery,您可以这样做(完全未经测试,因此无法直接工作,但您应该找到解决方案:) 要获取url参数,可以使用以下解决方案: 只需将'discountcode'字符串替换为您的真实参数名 希望有帮助 致以最良好的祝愿, 克里斯 更新:添加了查询字符串和“?”/“&”处理 更新2:从道具更改为属性 更新3:从“参数”名称更改为“折扣代码”
Uüdate 4:添加了长度检查@persistedQueryParam,终于有机会测试脚本:)嘿,克里斯,谢谢你的回答。我可以使用jquery,但我只知道一点点。有机会的时候你能澄清一下答案吗?我可以看到它看起来像是针对页面上的所有链接并添加persistedQueryParam,但我不确定首先如何为persistedQueryParam获取正确的值。此外,由于我只有几个需要这样做的链接,我可以按类来确定目标吗?类似于:$('a.persist-link')。每个(函数()?都已更新。是的,如果您可以通过使用css类缩小它的范围,那么您肯定应该这样做。您使用
.prop()
而不是.attr()有什么原因吗
?前者通常用于属性,例如选中的,选中的,选中的索引,标记名,节点名,节点类型,所有者文档,默认选中的和默认选中的。你说得对,应该是attr.更改了co谢谢你的提示。
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);
});
}
});