"的javascript:;"对于HTML锚标记中的href属性

时间:2012-06-04 12:06:05

标签: javascript html

更新

以下代码的含义是什么?它需要JavaScript才能工作吗?

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

更新

等于以下?:

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

4 个答案:

答案 0 :(得分: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"会将您带到与此类似的锚点:<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/

答案 1 :(得分:5)

这是一个无操作。

另一种常见方式是href="#",但这需要您在onclick事件中return false,以避免跳到页面顶部并在地址栏中获得#。< / p>

请注意,使用和不使用JavaScript都可以使链接工作通常是一个好主意,即执行<a href="/whatever" onclick="dowhatever(); return false;">之类的操作,这样没有JavaScript的人只会以经典的方式打开页面,而拥有JavaScript的人则可以获得任何内容你用JS做的好东西。

如果某些内容在没有JavaScript的情况下不起作用,即没有有用的href值,请考虑不要使用a标记,而是使用span适当的风格(cursor:pointer,可能加下划线)。

答案 2 :(得分:0)

它什么都不做,意味着将a标签的默认行为替换为无操作的某个地方,使链接基本上不可点击。

答案 3 :(得分:0)

如果您在:之后指定一些函数,那么它将使用<a>标记进行调用。但是这里您没有指定任何函数,因此不会发生任何事情