
我们在使用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);也达到了我们前端展现的效果。
分类: 工作笔记
所属版块
: 科技
: 科技
本文章引用通告地址(TrackBack Ping URL)为: 

本文章尚未被引用。
下一篇: 冬的第十七章:提神儿
上一篇: 旁观

