以前获取浏览器参数是这样的
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‘]);
么么哒。
原文地址:https://blog.51cto.com/13496570/2416775
时间: 2024-10-07 13:28:46