在网页加载中,我们如何进行监听hash值:
window.addEventListener("hashchange", function() {
console.log("监听hash值 ");
});
然后比如一个网址是:http://****.com/index.html#name=zs&age=12&card=123123
我们是可以直接获取到hash值的,获取方法如下:
location.hash
得出:#name=zs&age=12&card=123123 这样的一个值;
可是我们又希望得到的是:
{
'name': 'zs',
'age': 18,
'card': 123123
}
这种的返回值;
我们可以如下操作:
var hashParam = (function(){
let objs = {}
let hsh = location.hash;
let hashc = hsh.slice(1, hsh.length);
let hashv = hashc.split('&');
if ( hashv.length > 0 ) {
hashv.forEach(item => {
let keys = item.split('=');
objs[keys[0]] = keys[1];
})
}
return objs
})()
此时可以直接获取hash对象了,如有更好方法,可以在评论区建议,感谢!