#这个getUrlParamByName函数接受一个参数名称,然后解析当前URL中的查询参数。无论参数在#号前还是后,都可以正确获取参数值。如果找到了指定的参数,返回其值,否则返回undefined。
function getUrlParamByName(name) {
const url = window.location.href;
const hashIndex = url.indexOf('#');
let queryStringBeforeHash, queryStringAfterHash;
if (hashIndex !== -1) {
queryStringBeforeHash = url.substring(0, hashIndex).split('?')[1];
queryStringAfterHash = url.substring(hashIndex + 1).split('?')[1];
} else {
queryStringBeforeHash = url.split('?')[1];
}
const queryStrings = [queryStringBeforeHash, queryStringAfterHash];
let result;
queryStrings.forEach(queryString => {
if (queryString) {
queryString.split('&').forEach(param => {
const [key, value] = param.split('=');
if (key === name) {
result = decodeURIComponent(value);
}
});
}
});
return result;
}
const paramName = 'yourParamName';
const paramValue = getUrlParamByName(paramName);
console.log(paramValue);