js获取页面URL的参数

// 获取URL的参数

function getAllUrlParams(url) {

	  // 从url(可选)或window对象获取查询字符串

	  var queryString = url ? url.split('?')[1] : window.location.search.slice(1);

	  // 我们把参数保存在这里

	  var obj = {};

	  // 如果查询字符串存在

	  if (queryString) {
	    // 查询字符串不包含#后面的部分,因此去掉它
	    queryString = queryString.split('#')[0];

	    // 把查询字符串分割成各部分
	    var arr = queryString.split('&');

	    for (var i=0; i<arr.length; i++) {

	      // 分离出key和value
	      var a = arr[i].split('=');

	      // 考虑到这样的参数:list[]=thing1&list[]=thing2
	      var paramNum = undefined;
	      var paramName = a[0].replace(/\[\d*\]/, function(v) {
	        paramNum = v.slice(1,-1);
	        return '';
	      });

	      // 设置参数值(如果为空则设置为true)
	      var paramValue = typeof(a[1])==='undefined' ? true : a[1];

	      // (可选)保持大小写一致
//	      paramName = paramName.toLowerCase();
//	      paramValue = paramValue.toLowerCase();

	      // 如果参数名已经存在
	      if (obj[paramName]) {

	        // 将值转成数组(如果还是字符串)
	        if (typeof obj[paramName] === 'string') {
	          obj[paramName] = [obj[paramName]];

	        }

	        // 如果没有指定数组索引
	        if (typeof paramNum === 'undefined') {

	          // 将值放到数组的末尾
	          obj[paramName].push(paramValue);

	        }

	        // 如果指定了数组索引
	        else {
	          // 将值放在索引位置

	          obj[paramName][paramNum] = paramValue;

	        }

	      }

	      // 如果参数名不存在则设置它
	      else {
	        obj[paramName] = paramValue;

	      }
	    }
	  }
	  return obj;
}

在调用这个方法时:

var lonat = getAllUrlParams('http://abc.com?a=abc').a;   // 返回abc
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值