一/ 带有中文,需要编码解码
- 从一个页面到另一个页面
location.href = 'XXX/XXXX?code=赵晗'
- 页面接收该参数时会乱码
解决办法:
- 发送时编码encodeURIComponent,接收时解码decodeURIComponent,在工作中我发现发送时不用编码,只要接收时解码就可以
//获取从清单页面传过来的参数并做判断
$(function () {
classifyJion();
var url = location.href;
//var url = 'fafafaf/dfafa';
var i = url.indexOf('?');
if (i == -1) {
$('.updataBtn').hide();
$('.saveBtn').show();
} else {
var querystr = url.substr(i + 1);
var arr1 = querystr.split('&');
for (i in arr1) {
var ta = arr1[i].split('=');
arrParam[ta[0]] = ta[1];
}
$('.saveBtn').hide();
$('.updataBtn').show();
pageLook(decodeURIComponent(arrParam.U_ItemCode));
}
})
二/ 传递对象
- 需要将对象转为JSON字符串
obj = JSON.stringify(obj);
- 接收页再转回对象
arrParam = arrParam.replace(/%22/g, '"'); //因为双引号都变成了 %22,所以用正则转回来
var obj = JSON.parse(arrParam);
三/ 传递formData
- 直接传formData或者将formData作为对象的属性值传过去都不行,我用的方法是遍历formData,存入对象中,然后接收后再转为formData。(如果要问我为什么要这么麻烦,我只能说项目需要)
var obj = {};
for(var pair of oformData.entries()) { //遍历formData方法
obj[pair[0]] = pair[1];
}