如何修改JS脚本,点击按钮时根据URL参数情况正确拼接查询参数?
问题与解决方案
原脚本缺陷
原脚本用于给包含abc的链接动态追加client_id查询参数,但存在格式问题:当原链接已有查询参数(比如Google Ads带来的gclid)时,会错误地用?拼接新参数,生成example.com/abc?gclid=786?client_id=123这类非法URL,正确格式应为example.com/abc?gclid=786&client_id=123。
修改后的脚本
<script> (function () { var links = document.querySelectorAll('a[href*=abc]'); // 动态读取Cookie中的client_id值(此部分已实现,保留占位) var clientIdValue = '{{Read Cookie Value}}'; links.forEach(function(link) { var originalHref = link.getAttribute('href'); // 根据原链接是否已有查询参数,选择分隔符 var separator = originalHref.includes('?') ? '&' : '?'; // 拼接参数并更新链接 link.setAttribute('href', originalHref + separator + 'client_id=' + clientIdValue); }); })(); </script>
关键逻辑说明
- 通过
originalHref.includes('?')判断原链接是否已包含查询参数分隔符? - 若原链接已有查询参数,用
&作为新参数的分隔符;若没有,用? - 最后将
client_id参数与对应值拼接在原链接后,保证URL格式合规
内容的提问来源于stack exchange,提问作者Arif Ahmed
相关产品推荐
相关产品推荐

