繁体   English   中英

需要在链接中保留URL查询字符串

[英]Need to make a url query string persist across a link

所以,我发现了这个类似的要求,但海报回答了自己的细节:

整个站点中的持久URL查询字符串?

基本上,我有一个事件管理网站,我可以编辑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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM