javascript - url地址拼接和获取参数
平常工作中,如果没有封装好的框架,获取url中的请求参数是很麻烦的一件事。
下列代码,解决了 “将对象的值拼接到Url” 和 “从Url获取参数转换为对象” 两个问题。
/**
* 拼接getUrl
* @param url 地址
* @param params 请求参数
*/
Layers.prototype.toGetUrl = function (url, params) {
var idx = url.indexOf('?');
if (idx < 0) {
url = url + '?';
} else if(idx !== url.length - 1){
if (url.charAt(url.length - 1) !== '&') {
url = url + '&';
}
}
for (var key in params) {
if (params.hasOwnProperty(key)) {
var v = params[key];
if (v !== '') {
url += key + '=' + params[key] + '&';
}
}
}
return url;
};
/**
* 获取Url中的参数
* @param url 地址
*/
Layers.prototype.getUrlParams = function (url) {
let res = {}, idx = url.lastIndexOf('?');
if (idx > 0) {
let p = url.substring(idx + 1, url.length);
// 兼容Vue工程,Vue项目中,允许这样的地址出现:http://www.baidu.com?name=min&age=16#eg1#eg2
let idx = p.indexOf('#');
if (idx > 0) {
p = p.substring(0, idx);
}
let arr = p.split('&');
for (let i = 0; i < arr.length; i++) {
let a = arr[i].split('=');
if (a.length > 1) {
res[a[0]] = decodeURI(a[1])
}
}
}
return res;
};
疯狂的妞妞 :每一天,做什么都好,不要什么都不做!