如何修改JS脚本为多个不同联盟链接自动添加流量ID参数tid
修改后的完整代码
<script> function getQueryVariable(variable) { var query = window.location.search.substring(1); var vars = query.split("&"); for (var i=0;i<vars.length;i++) { var pair = vars[i].split("="); if(pair[0] == variable){return pair[1];} } return(""); } window.onload = function(){ // 先获取当前页面的tid参数 const currentTid = getQueryVariable("tid"); // 当前页面无tid参数时直接跳过处理,避免生成无效参数 if (!currentTid) return; // 修改选择器规则:匹配所有联盟链接通用前缀的a标签 var anchors = document.querySelectorAll('a[href^="https://example.com/c/215029/"]'); Array.prototype.forEach.call(anchors, function (element, index) { const originalHref = element.href; // 判断原链接是否已有参数,自动选择正确的参数拼接符 const spliceChar = originalHref.includes('?') ? '&' : '?'; element.href = `${originalHref}${spliceChar}tid=${currentTid}`; }); } </script>
核心改动说明
- 链接匹配规则从原来的精准匹配单个联盟链接,改为匹配
https://example.com/c/215029/前缀的所有链接,你站点内所有符合该前缀的联盟链接(包括示例里的222、example2等)都会被自动命中处理 - 不再硬写拼接的链接前缀,直接读取每个a标签原本的地址拼接参数,适配所有匹配的联盟链接
- 新增参数格式兼容逻辑:如果链接本身已经携带其他参数,会自动用
&拼接tid参数,避免出现参数格式错误 - 新增非空判断,当前页面没有tid参数时不会修改链接,避免生成无效的空tid参数
内容的提问来源于stack exchange,提问作者Justmac
相关产品推荐
相关产品推荐

