一:js获取URL参数
通常情况下,我们参数都会传递到后台,然后jsp获取。但是有时候我们只是希望在jsp之间传递参数,并不想一个简单的数值传过去传过来。我们总是希望用最简单的方式实现预想的功能。
参考网上的案例,结合自己的实际需求,有了以下的实现(带多个参数),其实就是一个总结,自己以后好复习:
function getParam(){
var url = location.search; //获取url中"?"符后的字串
var Obj = new Object();
if (url.indexOf("?") != -1) {
var str = url.substr(1);
strs = str.split("&");
for(var i = 0; i < strs.length; i ++) {
Obj[strs[i].split("=")[0]]=unescape(strs[i].split("=")[1]);
}
}
return Obj;
}
此时的对象Obj里有多个参数,获取时可以这样:
比如的URL是:"${ctx}/mongodb/server/kbox?kid=${device.id}&type=2"
var requestValue = getParam();
想获取那个参数对应的值:
var deviceytpe =requestValue['type'];//获取url地址中的参数type的值,想获取kid的值,替换type即可.
但是后来,当我把type的值换成中文(我的编码是utf-8),就发现出现了乱码。百度了半天也没成功,最后发现问题出现在:
Obj[strs[i].split("=")[0]]=unescape(strs[i].split("=")[1]); 中。
我的成功代码就是:去掉unescape,换成:
Obj[strs[i].split("=")[0]]=strs[i].split("=")[1];
然后在var deviceytpe =requestValue['type']后加一次编码:
deviceytpe = decodeURIComponent(deviceytpe);
这样获取的devicetype就是中文的了。
如果是其它编码形式的,只要在上文中的红色部分修改即可。