获取URL参数

xiaoxiao2021-02-27  150

从一个页面跳转到另一个页面,有时候需要在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; } };

转载请注明原文地址: https://www.6miu.com/read-16157.html

最新回复(0)