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

发布于 2024-08-22 03:16:56 字数 395 浏览 3 评论 0原文

假设我们有 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. 有办法解决此行为吗?

Suppose we have the ff. in a.html:

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

Double-clicking on Link will trigger the event-handler onClick. However, the second click in the double-click seems to be interpreted as another click and causes the page to jump to the named anchor. In effect, the location isn't changed.

My questions are:

  1. Is this a browser bug or feature?

  2. Is there a way to work-around this behavior?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

寄居者 2024-08-29 03:16:56

你可以尝试

href="javascript:void(0);"

一下

You could try

href="javascript:void(0);"

instead

∞琼窗梦回ˉ 2024-08-29 03:16:56

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

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

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

<a href="#" onclick="onClick(event)">Link</a>

Use window.location = "b.html". location by itself has no special meaning.

The anchor jumping is unrelated. You can disable it by stopping the event.

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

<a href="#" onclick="onClick(event)">Link</a>
你怎么敢 2024-08-29 03:16:56

gshankar 是对的

另一种变体:

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

gshankar is right

Another variant:

<script>
  function onClick() {
    location = "b.html";
    return false;
  }
</script>
<a href="#" onclick="return onClick();">Link</a>
情何以堪。 2024-08-29 03:16:56

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

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

Or you can point the link at the function and skip the onclick event:

<script>
  function onClick() {
    location = "b.html";
    return false;
  }
</script>
<a href="javascript:onClick();">Link</a>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文