javascript 防止用于聚焦输入的链接导航到散列URL

ih99xse1  于 2023-06-28  发布在  Java
关注(0)|答案(1)|浏览(80)

我们有一个锚组件,它呈现一个<a>标签。现在,单击它会将焦点放在input元素上,但它会立即导航。比如说,如果我的名字是'abc',它会关注'abc'输入,但会立即导航到这个URL http://localhost:3000/#/abc
是否可以不导航到此URL?我无法控制锚组件

<Anchor
  href={`#${name}`}
  onClick={() =>
    document.getElementsByName(name)?.[0].focus()
  }
>
  Test Link
</Anchor>
n9vozmp4

n9vozmp41#

是的,可以通过使用event.preventDefault()方法来防止单击锚标记时的默认导航行为。您可以按如下方式修改代码以防止导航:

<Anchor
  href={`#${name}`}
  onClick={(event) => {
    event.preventDefault(); // Prevent default navigation
    document.getElementsByName(name)?.[0].focus();
  }}
>
  Test Link
</Anchor>

通过在onClick处理程序中调用event.preventDefault(),您可以告诉浏览器阻止锚标记的默认行为,即导航到指定的URL。相反,焦点将被设置在输入元素上,而不会导航离开当前页面。

相关问题