js:
/**
* 获取浏览器地址栏参数
* @param {Bol} all 默认为false,all和name选填,若为all url中参数以对象形式输出;若为name 则只输出该name对应的参数值
* @param {String} name 需要获取的参数名称
* @param {String} url 需要获取的URL地址(必选)
*/
const getQuery = function ({ all, name, url }) {
if (all) {
let urlArr = url.split('?')[1].split('&');
let queryList = {};
urlArr.forEach(cols => {
queryList[cols.split('=')[0]] = cols.split('=')[1];
});
return queryList;
} else {
let u = url || location.search;
let reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)');
let r = u.substr(u.indexOf('?') + 1).match(reg);
return r != null ? r[2] : '';
}
};
export {
getQuery
};
vue: 中引用
import { getQuery } from '@/utils/util.js';
getQuery({ url: request.url, name: 'deviceIds' })
// 或
getQuery({ all: true, url: window.location.href })