获取URL参数

从一个页面跳转到另一个页面,有时候需要在URL传递一些参数到另一个页面。怎样从url把参数获取出来呢?

比如一个url:

http://write.blog.csdn.net/postedit?ref=toolbar&ticket=ST-505085-3Y9fMheUNbFKcL5sqk5X-passport.csdn.net

首先使用window.location.search,返回当前url的查询部分,?号之后的字符串(包括?);

?ref=toolbar&ticket=ST-505085-3Y9fMheUNbFKcL5sqk5X-passport.csdn.net

最开始想是使用slice()或者使用substring()获取属性与属性值,但是这样的做法很不灵活。

最后使用对象来保存键名和键值。

var getFragment = function () {
		if (window.location.search.indexOf("?") === 0) {			//判断url是否带有参数
			return parseQueryString(window.location.search.substr(1));
		} else {
			return {};
		}

		function parseQueryString(queryString) {
			var data = {},
				pairs, pair, separatorIndex, escapedKey, escapedValue, key, value;

			if (queryString === null) {   //?号后为空字符串
				return data;
			}

			pairs = queryString.split("&");//split()将字符串转化为数组,当queryString字符串无&分隔号

			for (var i = 0; i < pairs.length; i++) {               //返回只包含queryString的数组
				pair = pairs[i];
				separatorIndex = pair.indexOf("=");             //只有键名无键值

				if (separatorIndex === -1) {
					escapedKey = pair;
					escapedValue = null;
				} else {
					escapedKey = pair.substr(0, separatorIndex);
					escapedValue = pair.substr(separatorIndex + 1);
				}

				key = decodeURIComponent(escapedKey);      //解码
				value = decodeURIComponent(escapedValue);

				data[key] = value;
			}

			return data;
		}
	};



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值