rou 2012-05-14
使用javascript的时候,通常我们会通过类似:
<ahref="#"onclick="javascript:方法">提交</a>
的方式,通过一个伪链接来调用javascript方法.这种方法有一个问题是:
虽然点击该链接的时候不会跳转页面.但是滚动条会往上滚,解决的办法是返回一个false.
如下所示:
<ahref="#"onclick="方法;returnfalse;">提交</a>
或<ahref="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中加上returnfalse,也会存在问题,导致点击链接页面返回顶部,这是由于#号默认锚点为#top,点击后重新定位到top锚点位置,当然可以自己再重新定义一个top锚点,但是这也不能很好解决问题,仍然也存在定位不准。有些朋友喜欢使用####来替换#(#一般为2到6个,大多都取4个)。无论#几个都是会存在这个bug的,原因同上。
点击链接导致页面返回顶部也可以采用span标签替换a标签来解决,但是还可以不改变标签,只需讲#用#this替换即可解决问题,也可以采用其它锚点
<ahref='#this'onclick='fun();returnfalse;'/>
字符串过于长的时候需要通过仅仅展示前4个,用...表示省略,<c:if test="${fn:length<=5}">${word.type}</c:if>href触发JavaScript事件:。<a