zoukankan      html  css  js  c++  java
  • 关于火狐和IE下href="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

  • 相关阅读:
    redis分布式锁
    pod资源清单
    zookeeper
    [置顶]【WP】 Writeup for SJTU-CTF ,被同级大佬和学长联合虐爆
    魔术师猜数【更优解】
    数学基础之线代
    向量是什么?
    矩阵与线性变换
    线性组合、张成的空间、基
    线性代数的本质
  • 原文地址:https://www.cnblogs.com/webdom/p/9776719.html
Copyright © 2011-2022 走看看