代码之家  ›  专栏  ›  技术社区  ›  Chry Cheng

在firefox中,双击一个标签,将href设置为,但将onclick设置为转到另一个页面,将有效地使我们保持在当前页面上。

  •  1
  • Chry Cheng  · 技术社区  · 16 年前

    假设我们有FF。在A.HTML:

    <script>
      function onClick() {
        // Do some important stuff and then...
        location = "b.html";
      }
    </script>
    <a href="#" onclick="onClick();">Link</a>
    

    双击链接将触发事件处理程序onclick。但是,双击中的第二次单击似乎被解释为另一次单击,并导致页面跳到指定的锚。实际上,位置没有改变。

    我的问题是:

    1. 这是浏览器错误还是功能?

    2. 有没有办法解决这种行为?

    4 回复  |  直到 9 年前
        1
  •  2
  •   Vignesh Kumar A    12 年前

    你可以试试

    href="javascript:void(0);"
    

    相反

        2
  •  1
  •   August Lilleaas    16 年前

    使用 window.location = "b.html" . location 它本身没有特殊的意义。

    起锚是无关的。您可以通过停止事件来禁用它。

    function onClick(event) {
      event.preventDefault();
      event.stopPropagation();
    }
    
    <a href="#" onclick="onClick(event)">Link</a>
    
        3
  •  0
  •   x2. alexey    16 年前

    G汉卡是对的

    另一种变体:

    <script>
      function onClick() {
        location = "b.html";
        return false;
      }
    </script>
    <a href="#" onclick="return onClick();">Link</a>
    
        4
  •  0
  •   Johan Öbrink    16 年前

    或者您可以将链接指向函数并跳过onclick事件:

    <script>
      function onClick() {
        location = "b.html";
        return false;
      }
    </script>
    <a href="javascript:onClick();">Link</a>
    
    推荐文章