做有态度的前端团队

网易FEG前端团队

window.location.hash使用总结

最近做项目经常与window.location.hash打交道,在这总结梳理下。
location.hash可以用来获取或设置页面的标签值,比如http://space.163.com/m/#about的location.hash="#about"。通过window.location.hash = hash 这个语句可以调整地址栏的地址,使得浏览器里边的“前进”、“后退”按钮能正常使用,然后根据hash值的不同来显示不同的模块。

var hash;
hash = (!window.location.hash) ? "#about" : window.location.hash;
window.location.hash = hash;
switch (hash) {  //用switch判断,调整地址栏地址
    case "#about":
        show("panel1");
        break;
    case "#advsearch":
        show("panel2");
        break;
    case "#adminboss":
        show("panel3");
        break;
}

onhashchange事件
在当前 URL 的锚部分(以 '#' 号为开始) 发生改变时触发,这是一个HTML 5新增的事件。IE8+、Firefox 3.6+、Chrome 5+、Safari 5.0+支持该事件。
它的使用方法有三种:


window.onhashchange = function(){};

window.addEventListener("hashchange", function(){}, false);

<body onhashchange="myFunction()">

对于不支持onhashchange的浏览器,可以用setInterval监控location.hash的变化。

调用方式:
通过设置Location 对象 的 location.hash 或 location.href 属性修改锚部分。
使用不同书签导航到当前页面(使用"后退" 或"前进"按钮)
点击链接跳转到书签锚

window.location.hash读取#值
window.location.hash这个属性可读可写。读取时,可以用来判断网页状态是否改变;写入时,则会在不重载网页的前提下,创造一条访问历史记录。

手机阅读请扫描下方二维码: