形如https://www.debug.org/temp/test2.html?a=1&b=2#ddd这样的链接,虽可通过location.search属性获取到问号后的所有查询字符串值,但要想逐个访问其中的每个查询字符串的值,即参数a,b各自有什么值的话,得自己添加函数实现了,实现方法 如下:
function getQueryStringArgs () {
// 获取查询字符串参数,去除该字符串问号开关符号
var qs=location.search.length>0?location.search.substring(1):"",
args={},//存放所有查询字符串参数对
items=qs.split("&"),
len=items.length,
name=null,
value=null;
if(qs.length==0) {
alert("没有查询字符串,提前退行!");
return;
};
for(var i=0;i
item=items[i].split("=");
name=decodeURIComponent(item[0]);
value=decodeURIComponent(item[1]);
args[name]=value;
}
return args;
}
// 使用这个函数示例,当前测试url是:https://www.debug.org/temp/test2.html?a=1&b=2#ddd
var qstr=getQueryStringArgs();
// var temp="";
// for(var i in qstr){
// temp+=(i+":"+qstr[i]+"\n");
// }
// alert(temp);
alert(qstr["b"]);
// alert(qstr.b);
提示:你可以先修改部分代码再运行。
很显示,这里定义了getQueryStringArgs()函数来实现,该函数返回args这一对象字面量,源码中也有示例,演示怎么使用该函数的返回值!