首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >href表达式<a href="javascript:;"></a>做什么?

href表达式<a href="javascript:;"></a>做什么?
EN

Stack Overflow用户
提问于 2011-10-13 21:46:19
回答 13查看 391.8K关注 0票数 256

我经常在网页中看到下面的href。然而,我不明白这是要做什么,也不明白这是什么技术。有没有人能详细解释一下?

代码语言:javascript
运行
复制
<a href="javascript:;"></a>
EN

回答 13

Stack Overflow用户

回答已采纳

发布于 2011-10-13 21:55:15

除非具有hrefname属性,否则<a>元素是无效的HTML.

如果你想让它正确地呈现为一个链接(如下划线、指针等),那么它只有在有href属性的情况下才会这样做。

因此,有时会将这样的代码用作创建链接的一种方式,但不必在href属性中提供实际的URL。开发人员显然希望链接本身不做任何事情,这是他所知道的最简单的方法。

他可能在其他地方有一些javascript事件代码,当点击链接时触发,这将是他实际希望发生的事情,但他希望它看起来像一个普通的<a>标记链接。

一些开发人员将href='#'用于相同的目的,但这会导致浏览器跳转到页面的顶部,这可能不是我们想要的。他不能简单地将href留空,因为href=''是一个指向当前页面的链接(即它会导致页面刷新)。

有一些方法可以绕过这些事情。在href中使用空的Javascript代码就是其中之一,尽管这不是最好的解决方案,但它确实有效。

票数 285
EN

Stack Overflow用户

发布于 2011-10-13 21:51:20

基本上,不是使用链接来移动页面(或锚点),而是使用此方法启动一个javascript函数

代码语言:javascript
运行
复制
<script>
function doSomething() {
  alert("hello")
}
</script>
<a href="javascript:doSomething();">click me</a>

单击该链接将触发警报。

票数 45
EN

Stack Overflow用户

发布于 2011-12-14 02:07:04

有几种机制可以避免链路到达其目的地。问题中的问题并不是很直观。

一种更简洁的选择是使用href="#no",其中#no是文档中未定义的锚点。

您可以使用更具语义的名称,如#disable或#action,以提高可读性。

该方法的好处:

通过使用javascript href="#"

  • Avoids ,javascript

  • 避免了空javascript

的“上移”效果

缺点:

必须确保在document.

  • The

  • 更改中未使用锚点名称,以包括(不存在的)锚点作为片段,并创建新的浏览器历史记录条目。这意味着在单击链接后单击“上一步”按钮将不会按预期运行。

由于<a>元素不充当链接,因此在这些情况下,最好的选择不是使用<a>元素,而是使用<div>,并提供所需的类似链接的样式。

票数 33
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7755088

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档