我已经看到不时在网页中使用以下href。但是,我不明白这是试图做什么或技术。有人可以详细说明吗?href表达式<a href="javascript:;"></a>做什么?
<a href="javascript:;"></a>
我已经看到不时在网页中使用以下href。但是,我不明白这是试图做什么或技术。有人可以详细说明吗?href表达式<a href="javascript:;"></a>做什么?
<a href="javascript:;"></a>
一个<a>
元素无效HTML,除非它具有href
或name
属性。
如果您希望它作为链接正确呈现(例如带下划线,手形指针等),则只有在具有href
属性时才会这样做。因此
这样的代码有时用作制备链路的方法,但不必提供在href
属性的实际URL。开发者显然希望链接本身不做任何事情,而这是他知道的最简单的方式。
他可能在其他地方有一些JavaScript事件代码,当链接被点击时触发,这将是他想要实际发生的事情,但他希望它看起来像一个正常的<a>
标记链接。
一些开发人员使用href='#'
为了同样的目的,但是这会导致浏览器跳转到该页面的顶部,这可能并不希望这样。而且他不能简单地将href留空,因为href=''
是回到当前页面的链接(即它导致页面刷新)。
有办法解决这些问题。在href
中使用空位的Javascript代码就是其中之一,虽然它不是最好的解决方案,但它确实有效。
出于好奇,有没有更好的方法来做到这一点? –
一个更好的做法是,如果事件函数执行'return false;'或'event.preventDefault()',那么'href'动作永远不会被调用,所以你可以在那里放一些更明智的东西。 – Spudley
没有'href'或'name'的'不是无效的;这可以使用验证器轻松检查。 –
它被点击时(除非JavaScript事件绑定到它)制作一个链接的方法什么都不做。
它运行的JavaScript,而不是按照一个链接的方式:
<a href="Javascript: doStuff();">link</a>
在没有实际运行JavaScript(如你的例子),它什么都不做。
是的,所以它调用JS事件/方法.. – Rob
啊,我明白了。它有效地禁用了链接。 –
<a href="javascript:void(0);"></a>
javascript:
告诉浏览器要编写JavaScript代码
http://stackoverflow.com/a/1293130/681538 – Alex
<a href="javascript:alert('Hello');"></a>
仅仅是速记:
<a href="" onclick="alert('Hello'); return false;"></a>
一种,但它不是一个真正的“喜欢喜欢”比较。首先使用它的陷阱就是一个原因。 – Lankymart
基本上而不是使用链接到移动网页(或锚),使用此方法启动了一个JavaScript函数(s)
<script>
function doSomething() {
alert("hello")
}
</script>
<a href="javascript:doSomething();">click me</a>
点击链接将触发警报。
有几种机制可以避免链接到达目的地。问题中的问题并不太直观。
清洁选项是使用href="#no"
其中#no
是文档中的非定义锚点。
您可以使用更多语义名称,如#disable或#action来提高可读性。
该方法的优点:
缺点的:
由于<a>
元素不作为纽带,在这些情况下,最好的选择是不使用<a>
元素,但一个<div>
并提供所需的链接般的风格。
我也喜欢非定义的锚点。然而,另一个缺点是它将锚点添加到浏览器历史记录中,所以我选择在OP中使用空白JS方法。 –
请参阅本:
<a href="Http://WWW.stackoverflow.com">Link to the website opened in different tab</a>
<a href="#MyDive">Link to the div in the page(look at the chaneged url)</a>
<a href="javascript:;">Nothing happens if there is no javaScript to render</a>
旧线程,但觉得还是补充说,之所以开发人员使用此结构是不是创造一个死链接,但由于某种原因JavaScript网址,不要通过引用正确地激活html元素。
例如handler_function(this.id)
作为onClick
,但不作为JavaScript网址。
因此,在编写符合标准的迂回代码时,需要手动调整每个超链接的调用,或者可以编写一次并在任何地方使用的稍微不标准的代码。
始终正常显示的链接最好的办法是用CSS如下:
a {cursor: pointer !important}
应该避免跟随非必要之类的东西在线程中提到。
如果我没有弄错,你可以调用一个JS方法。javascript:SomeFunction() – Rob
它不会尝试做任何事情,不能用合适的点击处理程序来处理。您应该避免这种情况,因为它很丑,无法访问,并导致人们使用'javascript:'方案不应该使用它('onclick =“javascript:...”') – Gareth
检查了这一点:http:// stackoverflow。 com/a/138233/908879 – ajax333221