当前位置: 移动技术网 > IT编程>开发语言>JavaScript > 关于火狐和IE下href="javascript:void(0)"兼容性的问题

关于火狐和IE下href="javascript:void(0)"兼容性的问题

2018年10月12日  | 移动技术网IT编程  | 我要评论

今天在开发中发现,使用如下方式的链接。在chrome中点击后行为符合预期,但在ie下会新开标签卡(根据参考资料,firefox中有相同问题)。 

经过排查,发现是href="javascript:void(0);"导致的问题,本来javascript:void(0);的用处是不用整体刷新网页且返回一个空值,但这儿由于dom本身的冒泡事件所以会最后执行href属性内的javascript:void(0);导致执行函数返回了一个空值,所以覆盖掉了前面正常执行函数所返回的值引起的错误。

一般情况下,ie会先运行dom本身绑定的事件,如onclick;如果没有阻止冒泡,则会顺序执行href属性。如果想正确运行,可以在前面用return false终止冒泡,例如:

<a target="_blank" class="prev"  onclick="return false;"   href="javascript:void(0);"></a>

或者直接删去也行,如:
<a target="_blank"  class="prev" ></a>

原因在于三款浏览器,对三个属性的处理顺序不同。

chrome顺序:onclick -> href -> target
ie和firefox顺序:onclick -> target -> href

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网