核心提示:对于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; }