7

更新

下面的代码是什么意思和做什么?它需要 JavaScript 才能工作吗?

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

更新

等于以下?:

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

4 回答 4

14

使用“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 将被视为相对链接。例如,"index.htm"域上"google.com"的链接将创建链接"google.com/index.htm"。同样,href 字符串""将创建链接"google.com/",因此空的 href 字符串将导致浏览器导航到新页面。

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

但是,您可以使用 CSS 强制对链接进行格式化,如下所示:

CSS:

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

HTML:

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

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

于 2012-06-04T12:16:25.753 回答
6

这是一个无操作。

另一种常见的方法是href="#",但这需要您return false在 onclick 事件中避免跳转到页面顶部并#在地址栏中获取 a。

请注意,使用和不使用 JavaScript 的链接通常是一个好主意,例如,做类似<a href="/whatever" onclick="dowhatever(); return false;">这样的事情,没有 JavaScript 的人会简单地以经典方式打开页面,而使用 JavaScript 的人会得到你用 JS 做的任何好东西。

如果某些东西根本不应该在没有 JavaScript 的情况下工作,即没有有用href的价值,请考虑根本不使用a标记,而是使用span具有适当样式的 a(cursor:pointer可能带有下划线)。

于 2012-06-04T12:08:09.693 回答
0

它什么都不做,旨在替换a标签的默认行为以无操作进入某个地方,从而使链接基本上不可点击。

于 2012-06-04T12:07:23.270 回答
0

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

于 2012-06-04T12:09:20.993 回答