location对象中search属性返回的是问号之后的URL,这部分通常是某种类型的查询字符串,是用来参数化URL并在其中嵌入参数的,那么如何在页面中用js来获取到所有的参数呢?下面的函数就是为此而生:
// 函数用来解析来自URL的产讯传中的name = value参数对,并将其存储在一个对象的属性中,并且返回该对象
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("=");
if(pos == -1) continue;
var name = pairs[i].substring(0, pos);
var value = pairs[i].substring(pos + 1);
value = decodeURIComponent(value);
args[name] = value;
}
return args;
}
/*
* 使用方法
* var args = urlArgs();
* var q = args.q || "";
* var n = args.n ? parseInt(args.n) : 10;
*/