您的位置:首页 > Web前端 > JavaScript

js 批量获取浏览器参数

2019-07-03 18:10 1026 查看

以前获取浏览器参数是这样的

function GetQueryString(name)
{
var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
var r = window.location.search.substr(1).match(reg);
if(r!=null)
return  unescape(r[2]);
return null;
}

// 调用方法
alert(GetQueryString("参数名1"));

这种方法适合获取单个的参数,但是当参数一多的时候就会很麻烦,有没有办法将浏览器的参数都放到一个对象里面呢?于是我就写了下面的这个方法

function getParameters() {                    //获取地址栏参数不包括hash值
var search = decodeURI(location.search);//防止中文乱码
search = search.replace('?', '');
var searray = search.split("&");
var obj = {}
searray.map(function (item) {
var sarry = item.split('=');
obj[sarry[0]] = sarry[1];
})
return obj;
}

var para=getParameters();

是不是很简单,也很方便

恩,然后第一个获取单个的时候有优势,一个在获取所有的时候有优势,所以能不能整合一下呢?

好的,说干就干,修改下

function getParameters(obj) {//获取地址栏参数不包括hash值
var search = decodeURI(location.search).replace('?', '');//防止中文乱码
if(typeof obj=="string"){
var reg = new RegExp("(^|&)"+ obj +"=([^&]*)(&|$)");
var r = window.location.search.substr(1).match(reg);
if(r!=null)return  unescape(r[2]); return null;
}else if(typeof obj=="undefined"){
var searray = search.split("&");
var obj = {}
searray.map(function (item) {
var sarry = item.split('=');
obj[sarry[0]] = sarry[1];
})
return obj;
}

}

// getParameters();
//  getParameters('tn');

不满足的你是不是又在想我既不想获取一个也不想获取全部,我就想获取其中的几个呢?

谁让我这么爱你呢,满足你。

所以最终代码变成了这样

function getParameters(obj) {//获取地址栏参数不包括hash值
var search = decodeURI(location.search).replace('?', '');//防止中文乱码
if(typeof obj=="string"){
var reg = new RegExp("(^|&)"+ obj +"=([^&]*)(&|$)");
var r = window.location.search.substr(1).match(reg);
if(r!=null)return  unescape(r[2]); return null;
}else if(typeof obj=="undefined"){
var searray = search.split("&");
var obj = {}
searray.map(function (item) {
var sarry = item.split('=');
obj[sarry[0]] = sarry[1];
})
return obj;
}else if(obj.constructor ==Array){
var searray = search.split("&");
var fromarray = {}
searray.map(function (item) {
var sarry = item.split('=');
if(obj.indexOf(sarry[0])>-1){
fromarray[sarry[0]] = sarry[1];
}

})
return fromarray;
}

}

// getParameters();
//  getParameters('tn');
//getParameters(['tn','wd']);

么么哒。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: