【发布时间】:2012-06-08 12:11:27
【问题描述】:
更新
以下代码的含义和作用是什么?它需要 JavaScript 才能工作吗?
<a href="javascript:;">Do Somthing</a>
更新
是否等于以下?:
<a href="">Do Somthing</a>
【问题讨论】:
-
AFAIK 意思是“什么也不做”
标签: javascript html
更新
以下代码的含义和作用是什么?它需要 JavaScript 才能工作吗?
<a href="javascript:;">Do Somthing</a>
更新
是否等于以下?:
<a href="">Do Somthing</a>
【问题讨论】:
标签: javascript html
它什么都不做,旨在替换 a 标记的默认行为以进入无操作的地方,使链接基本上不可点击。
【讨论】:
这是一个空操作。
另一种常见的方式是href="#",但这需要您在onclick事件中return false以避免跳转到页面顶部并在地址栏中获得#。
请注意,使用和不使用 JavaScript 的链接通常是一个好主意,即执行类似 <a href="/whatever" onclick="dowhatever(); return false;"> 的操作,这样没有 JavaScript 的人将简单地以经典方式打开页面,而使用 JavaScript 的人会得到任何好东西你用 JS 做的。
如果某些东西根本不应该在没有 JavaScript 的情况下工作,即没有有用的 href 值,请考虑完全不使用 a 标记,而是使用具有适当样式的 span (cursor:pointer并可能加下划线)。
【讨论】:
如果你在:之后指定一些函数,那么它将使用<a>标签调用。但是这里你没有指定任何函数所以什么都不会发生
【讨论】:
使用“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 属性,通常链接不会显示指针光标或将元素格式化为链接,这样您就可以将其用作“锚”元素,您可以使用哈希字符链接到该元素在一个网址中。比如"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>
【讨论】:
<a href="#"> 链接在大多数情况下会导致页面滚动到顶部。