hrefexpression式<a href="javascript:;"> </a>做什么?

我已经看到不时在网页中使用以下的href。 但是,我不明白这是试图做什么或技术。 有人可以详细说明吗?

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

除非具有hrefname属性,否则<a>元素是无效的HTML。

如果你想把它作为一个链接正确的渲染(比如下划线,手形指针等等),那么只有当它有一个href属性的时候才会这样做。

因此,这样的代码有时用作制作链接的一种方式,而不必在href属性中提供实际的URL。 开发者显然希望链接本身不要做任何事情,这是他知道的最简单的方法。

他可能在其他地方有一些JavaScript事件代码,当点击链接时触发,这将是他想要实际发生的事情,但他希望它看起来像一个正常的<a>标记链接。

有些开发人员使用href='#'来达到同样的目的,但这会导致浏览器跳转到页面的顶部,这可能不是我们想要的。 而且他不能简单地把href留空,因​​为href=''是一个回到当前页面的链接(即它会导致页面刷新)。

有围绕这些东西的方法。 在href使用一段空的Javascript代码就是其中之一,尽pipe它不是最好的解决scheme,但它确实有效。

有几种机制可以避免链接到达目的地。 从问题的一个不是很直观。

清洁选项是使用href="#no" ,其中#no是文档中的非定义锚。

您可以使用更多的语义名称,如#disable或#action来提高可读性。

方法的好处:

  • 避免空href =“#”的“移动到顶部”效果
  • 避免使用JavaScript

缺点:

  • 您必须确保文档中未使用锚定名称。

由于<a>元素不作为链接,所以在这些情况下最好的select是不使用<a>元素,而是使用<div>并提供所需的链接样式。

基本上,而不是使用链接来移动页面(或锚),使用此方法启动JavaScript函数(S)

 <script> function doSomething() { alert("hello") } </script> <a href="javascript:doSomething();">click me</a> 

点击链接将触发警报。

 <a href="javascript:alert('Hello');"></a> 

只是简写:

 <a href="" onclick="alert('Hello'); return false;"></a> 

参考这个:

 <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> 

老线程,但认为我只是补充说,开发人员使用这种构造的原因是不创build一个死链接,但由于JavaScript的URL由于某种原因不能正确地传递给活动HTML元素的引用。

例如handler_function(this.id)作为onClick但不作为JavaScript的URL。

因此,在编写符合标准的迂回代码时,需要手动调整每个超链接的调用,或者可以编写一次并在任何地方使用的稍微不规范的代码。

这是一种使链接在单击时绝对没有任何操作的方式(除非Javascript事件绑定到它)。

这是一种运行Javascript而不是链接的方式:

 <a href="Javascript: doStuff();">link</a> 

当没有真正的JavaScript运行(如你的例子),它什么都不做。

始终正确显示链接的最佳方法是使用以下CSS:

 a {cursor: pointer !important} 

应该避免跟随在线程中提到的不必要的事情。

 <a href="javascript:void(0);"></a> 

javascript:告诉浏览器去编写javascript代码