1

假设我们有ff。在 a.html 中:

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

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

我的问题是:

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

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

4

4 回答 4

2

你可以试试

href="javascript:void(0);"

反而

于 2010-02-19T06:38:40.257 回答
1

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

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

function onClick(event) {
  event.preventDefault();
  event.stopPropagation();
}

<a href="#" onclick="onClick(event)">Link</a>
于 2010-02-19T06:39:18.660 回答
0

格尚卡尔是对的

另一种变体:

<script>
  function onClick() {
    location = "b.html";
    return false;
  }
</script>
<a href="#" onclick="return onClick();">Link</a>
于 2010-02-19T06:41:33.440 回答
0

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

<script>
  function onClick() {
    location = "b.html";
    return false;
  }
</script>
<a href="javascript:onClick();">Link</a>
于 2010-02-19T07:33:51.223 回答