首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

href小技艺

2012-06-28 
href小技巧使用javascript的时候,通常我们会通过类似: a href# onclickjavascript:方法提交 /a

href小技巧
使用javascript的时候,通常我们会通过类似:
< a href="#" onclick="javascript:方法">提交< /a>
的方式,通过一个伪链接来调用javascript方法.这种方法有一个问题是:
虽然点击该链接的时候不会跳转页面.但是滚动条会往上滚,解决的办法是返回一个false.
如下所示:
< a href="#" onclick="方法;return false;">提交< /a>
或< a href="javascript:void(0)" onclick="方法">提交< /a>
同时页面链接地址也不会被添加上#


在web标准中也是不建议使用 javascript:void(0)的方式 因为伪协议也会有bug存在,会使gif动画停止播放。

点击事件触发的时候(调用顺序:onclick->window.onbeforeunload->href),因为void运算符在执行之前会调用window.onbeforeunload方法对于void运算符(void只做运算,返回结果为undefined),所以在调用到href时遇到void运算符的时候,可能就会产生一些bug

但是使用href='#' onclick中加上return false,也会存在问题,导致点击链接页面返回顶部,这是由于#号默认锚点为#top,点击后重新定位到top锚点位置,当然可以自己再重新定义一个top锚点,但是这也不能很好解决问题,仍然也存在定位不准。有些朋友喜欢使用####来替换#(#一般为2到6个,大多都取4个)。无论#几个都是会存在这个bug的,原因同上。

点击链接导致页面返回顶部也可以采用span标签替换a标签来解决,但是还可以不改变标签,只需讲#用#this替换即可解决问题,也可以采用其它锚点

<a href='#this' onclick='fun();return false;'/>

热点排行