最近,在js原生开发中,利用url
地址传参,有时会遇到乱码的问题,以下针对这个问题进行详解。
1.列表页传参
// url传参 encodeURI()编码
var Parameter = '供水设备系列';
$('.parBd ul li a').click(function () {
window.location.href =
'./product_detail.html?location=' + encodeURI(Parameter);
});
2.详情页接收url的参数,并且解析:decodeURI()
解码
// 获取url 传参
function GetRequest() {
var url = decodeURI(location.search); //获取url中"?"符后的字串 并且解析Url编码
var theRequest = new Object();
if (url.indexOf('?') != -1) {
var str = url.substr(1);
strs = str.split('&');
for (var i = 0; i < strs.length; i++) {
theRequest[strs[i].split('=')[0]] = unescape(strs[i].split('=')[1]);
}
}
return theRequest;
}
var locationVal = new Object();
locationVal = GetRequest();
var MatchId = locationVal['location'];
console.log(MatchId);//获取到参数值
解释一下上面的代码:
1.decodeURI
()和encodeURI()
用于解码和编码URL的俩个JS函数
2.substr(1)
相当于 substring(1,str.length)
3.unescape()
对不是英文字母进行解码
这样参数就拿到了~~~~,可以用这个参数调接口了