1

ff があるとします。a.html で:

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

リンクをダブルクリックすると、イベント ハンドラー onClick がトリガーされます。ただし、ダブルクリックの 2 回目のクリックは別のクリックとして解釈され、ページが名前付きアンカーにジャンプするようです。実際には、場所は変更されません。

私の質問は次のとおりです。

  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

または、リンクを関数に向けて、onclick イベントをスキップすることもできます。

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

グシャンカーは正しい

別のバリアント:

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