在JavaScript中,获取URL中#
后面的参数(通常称为hash参数)可以通过以下几种方法实现:
URL中的#
符号用于定义片段标识符(fragment identifier),它指向文档中的某个部分,浏览器不会将片段标识符发送到服务器,而是在客户端进行处理。
window.location.hash
你可以直接使用window.location.hash
来获取URL中的hash部分,然后进行解析。
// 获取hash值,包括#
let hash = window.location.hash;
// 去掉#号
let hashString = hash.substring(1);
// 解析成对象
let params = {};
let pairs = hashString.split('&');
for (let pair of pairs) {
let [key, value] = pair.split('=');
params[decodeURIComponent(key)] = decodeURIComponent(value || '');
}
console.log(params);
URLSearchParams
URLSearchParams
接口提供了更简洁的方法来处理URL参数。
// 获取hash值,不包括#
let hashString = new URLSearchParams(window.location.hash.substring(1));
// 转换成对象
let params = {};
hashString.forEach((value, key) => {
params[key] = value;
});
console.log(params);
假设URL为http://example.com/page#section=about&user=JohnDoe
,使用上述方法可以轻松获取section
和user
的值。
let params = new URLSearchParams(window.location.hash.substring(1));
console.log(params.get('section')); // 输出: about
console.log(params.get('user')); // 输出: JohnDoe
通过这些方法,你可以方便地获取和处理URL中的hash参数,以满足不同的应用需求。
领取专属 10元无门槛券
手把手带您无忧上云