//https://www.baidu.com?sjry=111
function GetRequest() {
var url = location.search;
var theRequest = new Object();
if (url.indexOf("?") != -1) {
var str = url.substr(1);
strs = str.split("&");
for (var i = 0; i < strs.length; i++) {
theRequest[strs[i].split("=")[0]] = decodeURIComponent(strs[i].split("=")[1]);
}
}
return theRequest;
}
console.log(GetRequest().sjry)//111
犀牛书超链接获取参数例子
function urlArgs(){
var args = {}; //定义一个空对象
var query = location.search.substring(1); //查找到查询串,并去掉‘?’
var pairs = query.split("&"); //根据‘&’符号将查询字符串分隔开
for(var i = 0;i<pairs.length;i++){ //对于每个片段
var pos = pairs[i].indexOf('='); //查找‘name=value’
if(pos == -1) continue; //如果没有找到的话,就跳过
var name = pairs[i].substring(0,pos); //提取name
var value = pairs[i].substring(pos+1); //提取value
value = decodeURIComponent(value); //对value进行解码
args[name] = value; //存储为属性
}
return args; //返回解析后的参数
}
Jquery添加 或者修改url中参数的值
// 添加 或者 修改 url中参数的值
function UpdateUrlParam(name, val) {
var thisURL = document.location.href;
// 如果 url中包含这个参数 则修改
if (thisURL.indexOf(name+'=') > 0) {
var v = getUrlParam(name);
if (v != null) {
// 是否包含参数
thisURL = thisURL.replace(name + '=' + v, name + '=' + val);
}
else {
thisURL = thisURL.replace(name + '=', name + '=' + val);
}
} // 不包含这个参数 则添加
else {
if (thisURL.indexOf("?") > 0) {
thisURL = thisURL + "&" + name + "=" + val;
}
else {
thisURL = thisURL + "?" + name + "=" + val;
}
}
location.href = thisURL;
};
URLSearchParams方法获取参数
现在再也不用正则这么复杂去获取浏览器的查询参数啦,浏览器给我们直接提供了一个URLSearchParams
接口,让我们可以对查询参数有很大的操作空间,而且比起之前使用正则,更加简洁直接
//首先把使用URLSearchParams方法实现获取url参数的代码呈上
const urlSearchParams = new URLSearchParams(window.location.search);
const params = Object.fromEntries(urlSearchParams.entries());
console.log(params) // {id: '2', isShare: 'true'}
console.log(params.id) // 2
是不是超级简单,只需要以url作为参数传入,并且创建URLSearchParams
的一个实例对象,然后调用entries()
这个方法,返回一个迭代协议iterator,该协议支持可以遍历所有支持健/值对的列表
此时还需要通过Object.fromEntries()
这个方法去把该健/值对的列表,然后我们就可以愉快地使用获取到的参数啦
URLSearchParams的兼容性
URLSearchParams
本身不兼容IE如果实在要兼容IE,也不要怕,可以使用url-search-params-polyfill
这个插件去使用啦
安装方式:npm install url-search-params-polyfill --save
使用方式:const params = new URLSearchParams("id=2&isShare=true");