目标要求:
实现从A页面跳转至B页面,B页面接收A页面通过地址栏传递过来的中文参数,中文不能出现乱码。
A页面部分代码(传递参数):
var title = "这是中文";
var t = encodeURI(encodeURI(title));
window.location.href = "b.html?title=" + t;
B页面部分代码(接收参数):
var t = GetQueryString("title"); //获取地址栏参数
var title = decodeURI(t); //只需要转一次码
// 利用正则表达式方式,获取地址栏中的的参数值
function GetQueryString(name) {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
var r = window.location.search.substr(1).match(reg);
if(r != null)
return unescape(r[2]);
return null;
}
关键方法讲解:
1. encodeURI() 函数可把字符串作为URI进行编码
2. decodeURI() 函数可对encodeURI()函数编码过的URI进行解码
经过实测IE,Chrome,Fire Fox 等主流浏览器均没问题
|