a href=#与 a href=javascript:void(0)的区别?

本文探讨了解决在iframe内触发div悬浮层时出现的定位错误问题。通过修改<a>标签的href属性,避免了默认滚动到页面顶部的行为。介绍了几种有效的方法,包括使用javascript:void(0)及return false。

      前天做的页面是一个iframe弹出窗口(说明一下:同事用js脚本开发出来的)里触发一个<a>链接的按钮可在该窗口上弹出一个div悬浮层。但是每次点击,div悬浮层就自动位于IE窗口的顶端,下面的iframe窗口包含的页面会自动上移,位置错乱了。

      同事说主要是<a href='#' onclick='click事件名()'></a>这里的href='#'的原因,把它改成三个#就没问题了,即修改为<a href='###' onclick='click事件名()'></a>

      嘿,还真好了。后来网上搜了一下估计是: 

     #包含了一个位置信息

     默认的锚点是#top 也就是网页的上端

   方法一:  所以为了避免这个位置问题有的人提倡采用的方式是javascript:void(0)  来表示一个死链接。

   方法二:  但是也有的人不提倡采用这种方式,看这篇文章:a href=”javascript:void(0);” — avoid the void大概就明白啥回事了,^_^   

    <a href="#" onclick="doSomething();returnfalse;">Link</a>

    或者

 

    <script type="javascript">
    function doSomething() {
      //doSomething
     returnfalse;
   }
   </script>
   <a href="#" onclick="return doSomething();">Link</a>

    以往大家不使用"#"的问题是,这将导致点击链接时页面跳回页面顶部,但通过 return false 语句将使得浏览器忽略链接的默认动作,从而避免了此问题。

   我想为何同事要用三个#,大概也是让#包含的位置信息失去效果,但为何用三个而不是二个或四个之类的,就不太清楚了。下次有空再测一下。。。知道答案的朋友就给个评论里吧。先道声:谢谢了

  

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值