我不时在网页中看到以下href。但是,我不明白这是要做什么或技术。有人可以详细说明吗?
<a href="javascript:;"></a>
我不时在网页中看到以下href。但是,我不明白这是要做什么或技术。有人可以详细说明吗?
<a href="javascript:;"></a>
一个<a>
元素是无效的 HTML,除非它有一个href
orname
属性。
如果您希望它正确呈现为链接(即下划线、手形指针等),那么它只有在具有href
属性时才会这样做。
因此,此类代码有时用作创建链接的一种方式,但不必在href
属性中提供实际 URL 。开发人员显然不希望链接本身做任何事情,这是他知道的最简单的方法。
他可能在别处有一些 javascript 事件代码,当点击链接时会触发这些代码,这将是他想要实际发生的事情,但他希望它看起来像一个普通的<a>
标签链接。
一些开发者href='#'
出于同样的目的使用,但这会导致浏览器跳转到页面顶部,这可能不是我们想要的。而且他不能简单地将 href 留空,因为它href=''
是一个返回当前页面的链接(即它会导致页面刷新)。
有办法解决这些问题。在 中使用空的 Javascript 代码href
就是其中之一,虽然它不是最好的解决方案,但它确实有效。
基本上不是使用链接来移动页面(或锚点),而是使用这种方法启动一个 javascript 函数
<script>
function doSomething() {
alert("hello")
}
</script>
<a href="javascript:doSomething();">click me</a>
单击该链接将触发警报。
有多种机制可以避免链接到达其目的地。问题中的那个不是很直观。
更简洁的选择是使用文档中的href="#no"
where#no
是未定义的锚点。
您可以使用更具语义的名称,例如 #disable 或 #action 来提高可读性。
该方法的好处:
缺点:
由于<a>
元素不充当链接,因此在这些情况下最好的选择不是使用<a>
元素而是使用 a<div>
并提供所需的类似链接的样式。
<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>