标签响应javascript的href处理(不响应链接href,响应onclick,避免跳到页首)
2014-12-02 09:49
281 查看
为了给一个<a />标签绑定javascript,但又不让它跳转链接,大家习惯上用的都是
<a href="javascript:;" onclick="test();">第一种</a>
<a href="javascript:void(0);" onclick="test();">第二种</a>
<a href="#" onclick="test();">第三种</a>
而结果呢,几乎每一种用法都会有所问题
第一种和第二种似乎没有区别,似乎也是最常用,但IE6下,点击的瞬间,会中止后续资源的载入,如果页面上存在着gif动画,那么,在点击这个链接的一瞬间,页面上的gif将会被中止。这会是很杯具的体验。
第三种虽然在IE6下面,gif动画不会被中止,但在各个浏览器下,点击了链接之后,都会被跳回页首。其实它就是一个空锚点,被跳到页首。这对于有滚动条的页面,似乎也是一个杯具的体验。
于是当时经过试验,使用了第四种方法:
<a href="###" onclick="test();">第四种</a>
这个方法圆满解决了以上的问题。
第四种方法我用了许久,一直都被我作为最圆满的解决方法,但最近做的评论系统被嵌进带有FLASH视频的文章时,我又发现杯具了。
可以参考一下178的视频,例如以下 http://donghua.178.com/donghua_play/16582.html 乍一看似乎一切很正常,但右侧的动画集数,点完之后,URL后都会带一个#play的锚点
于是页面的URL将会变成 http://donghua.178.com/donghua_play/16582.html#play 这时,将鼠标点进中间的视频,也就是flash部分,就会发现,页面的标题栏文字丢失了,变成了#play,如果用的是第四种方法的###,那么标题栏也会变成#
虽然说不影响大局,但也是一种不良的体验。
山穷水尽之时,得到了大牛的指点……最后解决了,方法如下:
<a href="javascript:void(0);" onclick="test(); return false;">最终方法</a>
onclick的最后加上了return false;之后,IE6也听话了。
参考大牛的BLOG:http://www.yclass.com/post/23.html
不过,至于页面真的需要锚点的话,可以考虑使用javascript来实现锚点的功能。
文章转自:http://cn-asp.net/html/c34/2011-09/788.htm
<a href="javascript:;" onclick="test();">第一种</a>
<a href="javascript:void(0);" onclick="test();">第二种</a>
<a href="#" onclick="test();">第三种</a>
而结果呢,几乎每一种用法都会有所问题
第一种和第二种似乎没有区别,似乎也是最常用,但IE6下,点击的瞬间,会中止后续资源的载入,如果页面上存在着gif动画,那么,在点击这个链接的一瞬间,页面上的gif将会被中止。这会是很杯具的体验。
第三种虽然在IE6下面,gif动画不会被中止,但在各个浏览器下,点击了链接之后,都会被跳回页首。其实它就是一个空锚点,被跳到页首。这对于有滚动条的页面,似乎也是一个杯具的体验。
于是当时经过试验,使用了第四种方法:
<a href="###" onclick="test();">第四种</a>
这个方法圆满解决了以上的问题。
第四种方法我用了许久,一直都被我作为最圆满的解决方法,但最近做的评论系统被嵌进带有FLASH视频的文章时,我又发现杯具了。
可以参考一下178的视频,例如以下 http://donghua.178.com/donghua_play/16582.html 乍一看似乎一切很正常,但右侧的动画集数,点完之后,URL后都会带一个#play的锚点
于是页面的URL将会变成 http://donghua.178.com/donghua_play/16582.html#play 这时,将鼠标点进中间的视频,也就是flash部分,就会发现,页面的标题栏文字丢失了,变成了#play,如果用的是第四种方法的###,那么标题栏也会变成#
虽然说不影响大局,但也是一种不良的体验。
山穷水尽之时,得到了大牛的指点……最后解决了,方法如下:
<a href="javascript:void(0);" onclick="test(); return false;">最终方法</a>
onclick的最后加上了return false;之后,IE6也听话了。
参考大牛的BLOG:http://www.yclass.com/post/23.html
不过,至于页面真的需要锚点的话,可以考虑使用javascript来实现锚点的功能。
文章转自:http://cn-asp.net/html/c34/2011-09/788.htm
相关文章推荐
- 标签响应javascript的href处理
- 标签响应javascript的href处理[转载]
- a标签中的href,onclick,#,javascript:void简要分析 (转载)
- 超链接a标签的href与onclick中使用javascript的区别
- a标签中使用onclick事件时,href的处理
- a标签的onclick与href同时存在的处理
- 在a标签的href与onclick中使用javascript的区别
- 超链接a标签的href与onclick中使用javascript的区别
- HTML+JS基础之a标签href与onclick事件的冲突处理
- 在a标签的href与onclick中使用javascript的区别
- 在a标签的href与onclick中使用javascript的区别
- 在a标签的href与onclick中使用javascript的区别
- <a href="onclick="javascript:goSearch(this)" class="click" name="Java">Java</a>为什么a标签的父节点获取不到
- 把js写到链接a标签的href中和写到onclick中的区别
- 关于A标签使用onclick事件的疑问,若是href="#",跳转无反应,以及href=#与href=javascript:void(0)的区别
- 在链接中href 与onclick的javascript的区别
- 在a标签的href与onclick中使用javascript的区别
- 在a标签的href与onclick中使用javascript的区别
- <a>标签中 href 和 onclick 的区别,以及href="javascript:xxx(this);"与onclick="xxx(this);" 传递this参数的区别
- a标签中的href,onclick,#,javascript:void简要分析 (转载)