载入中
自定义HTML载入中... loading
javascript:void(0);处理的问题 [原创 2008-01-10 11:40:51]   
字体变小 字体变大
 
我们在使用js编码的时候,常常希望一个文字引发一段javascript代码,并且希望用户鼠标触摸此文字时候有手型的效果。我们通常的做法是,为这段文字加入一个链接。
<a  href="javascript:void(0);" onclick="someFun();">text</a>
 
其中的javascript:void(0);形式是一个javascript的伪协议,是表示此链接不跳转到任何的地方。
但是这样的做法,是有问题的。
在IE6.0下:用这种方法挂载的事件处理函数中改变img的src属性,浏览器不会显示图片,必须在右键菜单中点显示图片才能显示。
 
在网上搜集了一些文章反映这些问题:(我在本机没有重现,但如以后遇到问题可以先考虑是这里的问题。)
 
尤其是用于打开popup windows时:
  • 不能使用右键菜单中的open in new window
  • 不能把链接地址加入收藏夹 
  • 页面mediaplayer播放停止
 
 
猜想IE在处理的时候,将click和href作为链式处理,完成之后再最后处理资源的变更。但href的javascript,ie本身支持不好(见http://blog.reindel.com/2006/08/11/a-hrefjavascriptvoid0-avoid-the-void/),于是在href处中断,于是处理资源的程序被短路。
 
建议:处理此类链接的时候 采用<a  href="#" onclick="someFun();return false;">text</a> 这样就有效的规避了对href的解析。减少void(0);也达到了我们前端展现的效果。
 
<!-- Inject Script Filtered --> <!-- Inject Script Filtered -->
分类: 工作笔记
所属版块: 科技
票数:
什么是“我顶”?
点击数:    评论数:
本文章引用通告地址(TrackBack Ping URL)为:
本文章尚未被引用。
上一篇: 旁观
发表评论
大 名:
(不填写则显示为匿名者)
网 址:
(您的网址,可以不填)
标 题:
内 容:
请根据下图中的字符输入验证码:
(您的评论将有可能审核后才能发表)
和讯个人门户 v1.0 | 和讯部落 | 客服中心