使用javascript捕获用户在URL上输入的查询

时间:2015-09-29 17:54:19

标签: javascript query-string

我正在开发一个项目,用户希望能够添加"?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转到另一个页面时?

2 个答案:

答案 0 :(得分:1)

这个问题有几个解决方案,但首先,我建议为您的JavaScript代码提供更好的参数解析器。

This is a much more robust solution

现有的,你有两个解决方案。

一个是在页面启动时运行循环并使用您之前检索到的HTML参数更新所有a#href属性。如果您正在提供静态内容,则此方法有效。如果您有任何动态内容,它会很快崩溃。

因此,下一个解决方案是设置delegated event - 基本上,您将click事件附加到body元素,然后检查要点击的实际元素是什么是

You can learn more here.

答案 1 :(得分:0)

您可以遍历所有锚标记,并修改属性href以添加查询字符串:

document.addEventListener('DOMContentLoaded', function() {
  [].forEach.call(document.querySelectorAll('a[href]'), function(el, i) {
    el.href = el.href + location.search;
  });
});