封装一个函数获取URL中的GET参数
需要支持锚点链接例如:http://localhost:8080/#/chatApp?ent_id=5
具体来说
var query = window.location.search.substring(1);
var hash = window.location.hash.substring(1);
获取到URL在的参数
使用substring
方法获取到URL中的查询字符串(即从"?"开始的部分)。然后使用split
方法将查询字符串拆分成一个键值对数组。接着,使用map
方法遍历这个数组,并将每一个键值对添加到一个对象中。最后,使用typeof
语句判断传入的参数在这个对象中是否存在,如果存在则返回该参数的值,否则返回空字符串。
function getQuery(key) {
// 获取所有参数
var query = window.location.search.substring(1);
var hash = window.location.hash.substring(1);
// 如果锚点后面有参数,把锚点后面的参数加入到search参数中
if(hash.indexOf("?") > -1){
query += "&" + hash.split("?")[1];
}
var key_values = query.split("&");
var params = {};
// 遍历参数并存入params对象
key_values.map(function (key_val){
var key_val_arr = key_val.split("=");
params[key_val_arr[0]] = key_val_arr[1];
});
// 如果找到了key对应的参数,返回对应值
if(typeof params[key]!="undefined"){
return params[key];
}
// 如果没找到,返回空字符串
return "";
}