标签响应javascript的href处理

本文探讨了在JavaScript中如何正确处理<a>标签的href属性,以防止在不同浏览器下出现gif动画暂停、页面滚动和标题栏异常等问题。通过分析第一种至第四种常见方法的优缺点,提出在onclick事件中添加return false;的最终解决方案,确保在点击链接时阻止默认行为。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

为了给一个<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来实现锚点的功能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值