关于火狐和IE下href="javascript:void(0)"兼容性的问题
程序员文章站
2024-01-07 21:11:28
今天在开发中发现,使用如下方式的链接。在Chrome中点击后行为符合预期,但在IE下会新开标签卡(根据参考资料,Firefox中有相同问题)。 经过排查,发现是href="javascript:void(0);"导致的问题,本来javascript:void(0);的用处是不用整体刷新网页且返回一个 ......
今天在开发中发现,使用如下方式的链接。在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
推荐阅读
-
关于火狐和IE下href="javascript:void(0)"兼容性的问题
-
JavaScript在IE和FF下的兼容性问题_基础知识
-
JavaScript在IE和Firefox下的兼容性问题
-
JavaScript在IE和Firefox下的兼容性问题
-
JavaScript在IE和Firefox下的兼容性问题
-
一些Javascript的IE和Firefox(火狐)兼容性的问题总结及常用例子_javascript技巧
-
JavaScript在IE和FF下的兼容性问题_基础知识
-
一些Javascript的IE和Firefox(火狐)兼容性的问题总结及常用例子_javascript技巧
-
关于火狐和IE下href="javascript:void(0)"兼容性的问题