在项目中需要获取路由参数的时候,一般处理window.location.search的值就能解决问题。
但是如果我们的路由是hash路由,路由地址中带有#号,我们的search值就为空了。
为了更好的兼容性还是直接处理window.location.href比较好;
var ref= getQueryVariable('ref');
function getQueryVariable(variable) {
let href = window.location.href
let query = href.substring(href.indexOf('?')+1);
let vars = query.split("&");
for (var i = 0; i < vars.length; i++) {
let pair = vars[i].split("=");
if (pair[0] == variable) {
return pair[1];
}
}
return (false);
}
如果要获取所有参数:
var querys = getQueryVariable();
function getQueryVariable() {
let href = window.location.href
let query = href.substring(href.indexOf('?')+1);
let vars = query.split("&");
let obj = {}
for (var i = 0; i < vars.length; i++) {
let pair = vars[i].split("=");
obj[pair[0]] = pair[1]
}
return obj;
}