chrome下关于window.location.hash的bug

好吧,这次又是chrome。虽然这个浏览器很迅捷,但是总是有些奇怪的小bug,让人不爽。

废话不多说,直接看例子(请用chrome 5+以上版本打开链接):

猛击这里看bug重现。

代码主要使用了下面一句话,通过更改window.location.hash来使页面定位到相应的位置:

<a href=”javascript:void(0);” onclick=”window.location.hash=’bbb’;”>bbb</a>

重现bug的操作如下:点击某个链接(如bbb)跳转至锚点所在位置,然后回到最上面,再点击同一个链接(bbb),发现不会再次跳转,而此bug在其他浏览器下均未发现。

没有查到相关的资料,分析:chrome在地址栏已经存在相同的hash值时不会进行跳转锚点的动作。

我们可以通过强制页面锚点跳转来解决这个问题,解决方案是:在window.location.hash=’bbb’;后加上一句window.location=window.location;用于触发锚点跳转的动作。

猛击这里看解决方案。

相关日志

  • 拔赤
    拔赤 (22) 李晶,taobao前端
  • 白鸦
    白鸦 (31) UCDChina发起人
  • 胡斐
    胡斐 (37) 淘宝运营,胖胡斐:发现 美好
  • 阿当
    阿当 (4) 前端开发工程师,致力于打造高可维护性高品质的前端代码。喜...
  • 堂主
    堂主 (5) WEB前端开发技术及以用户为中心的体验
  • 千鸟
    千鸟 (47) 互联网产品设计师、架构师,专为中国网民做设计。
  • 引子
    引子 (26) 杭州,互联网/城市媒体,@19lou.com
  • 腾讯ISD
    腾讯ISD (29) 腾讯互联网系统Web团队

更多荣誉成员...