核心提示:对于URI后面的查询字段部分,如何拼接和获取。编码:function addURLParam(url,name,value){ url+=(url.indexOf(?) == -1 ? ? : ); ...
对于URI后面的查询字段部分,如何拼接和获取。
编码:
function addURLParam(url,name,value)
{
url+=(url.indexOf("?") == -1 ? "?" : "&");
//indexOf取到子串第一次出现的位置
url+=encodeURIComponent(name)+"="+encodeURIComponent(value);
return url;
}
解码
var args = getQueryStringArgs();
function getQueryStringArgs() { //取得查询字符串并去掉开头的问号
var qs = (location.search.length > 0 ? location.search.substring(1) : "");
//location.search 获取到url问号后的所有查询字符串值,search得到的是url中query部分
//substring()返回一个从指定位置开始的指定长度的子字符串这里设置为1,是为了把url中的?号去掉
var args = {};
//保存数据的对象
var items = qs.length ? qs.split("&") : [];
//取得查询字符串中每对键值对,保存到items中
//split()将一个字符串分割为子字符串,然后将结果作为字符串数组返回这里就是把query部分以&为分割符
var item = null;
var name = null;
var value = null;
var len = items.length;
for (var i = 0; i < len; i++) {
item = items[i].split("=");
name = decodeURIComponent(item[0]);
value = decodeURIComponent(item[1]);
if (name.length) {
args[name] = value;
}
}
return args;
}


