我正在开发一个项目,用户希望能够添加"?2yr"或"?4yr"到URL的末尾,但是当用户点击另一个页面时也会传递该查询。
例如,http://example.com/index.html?2yr是主页,但当您点击说联系时,它将是http://example.com/powerful_predictors.html?2yr。
我尝试过以下操作:
var _url = window.location;
if(window.location.href.indexOf("2yr") >- 1) {
console.log("your url contains the 2yr");
} else if(window.location.href.indexOf("4yr") >-1){
console.log("your url contains 4yr");
}
我如何添加"?2yr"或"?4yr"当用户点击URL转到另一个页面时?
答案 0 :(得分:1)
这个问题有几个解决方案,但首先,我建议为您的JavaScript代码提供更好的参数解析器。
This is a much more robust solution
现有的,你有两个解决方案。
一个是在页面启动时运行循环并使用您之前检索到的HTML参数更新所有a#href
属性。如果您正在提供静态内容,则此方法有效。如果您有任何动态内容,它会很快崩溃。
因此,下一个解决方案是设置delegated event
- 基本上,您将click
事件附加到body
元素,然后检查要点击的实际元素是什么是
答案 1 :(得分:0)
您可以遍历所有锚标记,并修改属性href
以添加查询字符串:
document.addEventListener('DOMContentLoaded', function() {
[].forEach.call(document.querySelectorAll('a[href]'), function(el, i) {
el.href = el.href + location.search;
});
});