标签href中#,javascript:void问题

在开发过程中遇到问题:

1: <a href='#' onclick='fun();return false;'/>触发javascript事件而不改变当前链接。
2: <a href="javascript:void(0)" onclick="return true;">这种方式来建立死链接。

    通过参考这篇文章知道在web标准中也是不建议使用2方式javascript:void(0)伪协议也会有bug存在,会使gif动画停止播放。事件触发(调用顺序 onclick>window.onbeforeunload->href),通过设置return false解决问题,而1却没有出现问题,这是因为void运算符在执行之前会调用window.onbeforeunload方法,对于void运算符(void只做运算,返回结果为undefined),所以在调用到href时遇到void运算符的时候,可能就会产生一些bug。

    但是使用1的方式href='#' onclick中加上return false,也会存在问题,导致点击链接页面返回顶部,这是由于#号默认锚点为#top,点击后重新定位到top锚点位置,当然可以自己再重新定义一个top锚点,但是这也不能很好解决问题,仍然也存在定位不准。

参考: http://boring.youngpup.net/archived/popups.html

你可能感兴趣的:(JavaScript,html,.net,Web,浏览器)