HTML锚标签中的 href 属性用 "javascript:;" 表示是什么意思?

7

更新

下面的代码是什么意思?它需要使用JavaScript才能运行吗?

<a href="javascript:;">Do Somthing</a>

更新

等同于以下内容吗?

<a href="">Do Somthing</a>

1
据我所知,AFAIK 意思是“什么也不做”。 - Alex
4个回答

15

使用 "javascript:" 作为 href 属性的开头告诉 JavaScript 引擎将字符串的其余部分解释为 JavaScript。在这种情况下,在严格模式下会导致语法错误,因为这实际上是一个带有结束分号的空 JavaScript 行。像这样:

;

大多数浏览器不会报错,但是链接上的javascript是旧语法,应尽可能避免使用。您可以将其安全地用作什么都不做的链接,但我不建议这样做。

如果您想要一个不执行任何操作的链接,您可以使用以下代码:

<a href="#">Link</a>
<a href="javascript:void(0);">Link</a>
<a href="javascript:return false;">Link</a>

仅使用空白的 href 字符串会被浏览器解释为相对链接。不以协议或高级域名标识符(如IP地址)开头的URL将被视为相对链接。例如,在域名 "google.com" 上的链接"index.htm"将创建链接 "google.com/index.htm"。同样地,href字符串 "" 将创建链接 "google.com/",因此空 href 字符串将导致浏览器导航到一个新页面。

通常,如果未指定 href 属性,则链接将不会显示指针光标或格式化元素,这样您就可以将其用作“锚点”元素,可以使用 URL 中的哈希字符链接到它。例如,"http://google.com/#an_anchor" 将带你到类似这样的锚点:<a id="an_anchor">这是一个锚点</a>

然而,你可以使用 CSS 强制格式化链接,像这样:

CSS:

a {
    color: #00c;
    text-decoration: underline;
    cursor: pointer;
}

HTML:

<a>This is a link.</a>

示例:http://jsfiddle.net/J3RfH/


这三个锚点会导致页面跳转到页面顶部吗? - Pingpong
5
大多数情况下,<a href="#"> 这个链接会导致页面滚动到顶部。 - Nimphious

6

这是一个无操作。

另一种常用的方法是使用href="#",但这需要在onclick事件中return false以避免跳转到页面顶部并在地址栏中得到#

请注意,通常最好让链接同时适用于JavaScript和非JavaScript,即像<a href="/whatever" onclick="dowhatever(); return false;">这样做,以便没有JavaScript的人以经典方式打开页面,而有JavaScript的人则可以获得任何您使用JS做的好东西。

如果某些内容完全不适用于JavaScript,即没有有用的href值,请考虑完全不使用a标签,而使用带有适当样式的spancursor:pointer和可能有下划线)。


0

它什么也不做,旨在替换a标签的默认行为,使链接基本上无法点击。


0

如果你在:后面指定了某个函数,那么它将使用<a>标签进行调用。但是在这里你没有指定任何函数,所以什么也不会发生。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接