В Firefox двойной щелчок по тегу с href, установленным на #, но с onclick, установленным для перехода на другую страницу, фактически заставит нас остаться на текущей странице. - PullRequest
1 голос
/ 19 февраля 2010

Предположим, у нас есть фф.в .html:

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

Двойной щелчок по ссылке запустит обработчик события onClick.Однако второй щелчок в двойном щелчке, по-видимому, интерпретируется как еще один щелчок и вызывает переход страницы на указанную привязку.По сути, местоположение не меняется.

Мои вопросы:

  1. Это ошибка браузера или функция?

  2. Есть ли способ обойти это поведение?

Ответы [ 4 ]

2 голосов
/ 19 февраля 2010

Вы можете попробовать

href="javascript:void(0);"

вместо

1 голос
/ 19 февраля 2010

Используйте window.location = "b.html".location само по себе не имеет особого значения.

Якорный прыжок не связан.Вы можете отключить его, остановив событие.

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

<a href="#" onclick="onClick(event)">Link</a>
0 голосов
/ 19 февраля 2010

Или вы можете указать ссылку на функцию и пропустить событие onclick:

<script>
  function onClick() {
    location = "b.html";
    return false;
  }
</script>
<a href="javascript:onClick();">Link</a>
0 голосов
/ 19 февраля 2010

Гшанкар прав

Другой вариант:

<script>
  function onClick() {
    location = "b.html";
    return false;
  }
</script>
<a href="#" onclick="return onClick();">Link</a>
...