js实现常用的功能之获取url参数

一: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就是中文的了。

如果是其它编码形式的,只要在上文中的红色部分修改即可



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值