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

使用javascript捕获用户在URL上输入的查询,javascript,query-string,Javascript,Query String,我正在做一个项目,在这个项目中,用户希望能够将“?2年”或“?4年”添加到URL的末尾,但当用户单击另一个页面时,也会传递该查询 例如,是主页,但当您单击“说联系人”时,它将是 我试着做了以下几点: var _url = window.location; if(window.location.href.indexOf("2yr") >- 1) { console.log("your url contains the 2yr"); } else if(window.locati

我正在做一个项目,在这个项目中,用户希望能够将“?2年”或“?4年”添加到URL的末尾,但当用户单击另一个页面时,也会传递该查询

例如,是主页,但当您单击“说联系人”时,它将是

我试着做了以下几点:

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");
}

当用户单击URL转到另一个页面时,如何添加“?2年”或“?4年”

您可以循环浏览所有锚定标记,并修改属性
href
以添加查询字符串:

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

对于这个问题有几种解决方案,但首先,我建议为您的JavaScript代码使用更好的参数解析器

在这个地方,你有两个解决方案

一种是在页面开始时,运行一个循环,并使用前面检索到的HTML参数更新所有
a#href
属性。如果您提供的是静态内容,那么这是有效的。如果你有任何动态内容,它很快就会崩溃

因此,下一个解决方案是设置一个
委托事件
——基本上,将
单击
事件附加到
主体
元素,然后检查要单击的实际元素是什么


嗨,杰里米,我已经在动态添加某些元素了。现在,我的一个按钮被设置为//URL FOR STUDENT COUNT var studentCount=“”$(“.student counts”).append(studentCount);我想做,var studentCount=“”;嗨,Buzinas,我试过你的代码,但它没有附加URL以包含查询字符串。@kirdua抱歉,这是一个输入错误。我已经确定了我的答案。看一看我为你创建的。谢谢。是否有办法通过地址栏添加查询字符串。我的客户只想通过地址栏添加“?2年”或“?4年”,然后将其传递给所有其他HREF。答案中的代码已经做到了!尝试打开,然后将地址栏更改为
?2yr
,查看链接发生了什么变化:但如果要在状态栏中显示链接,则应更改
href
属性,而不是属性,例如:
el.setAttribute('href',el.getAttribute('href')+location.search)