【前端】js使用window.location.href重定向后得到url后面的参数

代码来源https://blog.csdn.net/xiaojinguniang/article/details/83864992

UrlParam = function() { // url参数 
  var data, index; 
  (function init() { 
    data = []; //值,如[["1","2"],["zhangsan"],["lisi"]] 
    index = {}; //键:索引,如{a:0,b:1,c:2} 
    var u = window.location.search.substr(1); 
    if (u != '') { 
      var params = decodeURIComponent(u).split('&'); 
      for (var i = 0, len = params.length; i < len; i++) { 
        if (params[i] != '') { 
          var p = params[i].split("="); 
          if (p.length == 1 || (p.length == 2 && p[1] == '')) {// p | p= | = 
            data.push(['']); 
            index[p[0]] = data.length - 1; 
          } else if (typeof(p[0]) == 'undefined' || p[0] == '') { // =c 舍弃 
            continue; 
          } else if (typeof(index[p[0]]) == 'undefined') { // c=aaa 
            data.push([p[1]]); 
            index[p[0]] = data.length - 1; 
          } else {// c=aaa 
            data[index[p[0]]].push(p[1]); 
          } 
        } 
      } 
    } 
  })(); 
  return { 
     // 获得参数,类似request.getParameter() 
    param : function(o) { // o: 参数名或者参数次序 
      try { 
        return (typeof(o) == 'number' ? data[o][0] : data[index[o]][0]); 
      } catch (e) { 
      } 
    }, 
    //获得参数组, 类似request.getParameterValues() 
    paramValues : function(o) { // o: 参数名或者参数次序 
      try { 
        return (typeof(o) == 'number' ? data[o] : data[index[o]]); 
      } catch (e) {} 
    }, 
    //是否含有paramName参数 
    hasParam : function(paramName) { 
      return typeof(paramName) == 'string' ? typeof(index[paramName]) != 'undefined' : false; 
    }, 
    // 获得参数Map ,类似request.getParameterMap() 
    paramMap : function() { 
      var map = {}; 
      try { 
        for (var p in index) { map[p] = data[index[p]]; } 
      } catch (e) {} 
      return map; 
    } 
    } 
}();
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值