我不时看到网页中使用了以下href。但是,我不知道这是要做什么或技术。有人可以详细说明吗?
<a href="javascript:;"></a>
javascript:在不应该使用该方案的地方使用该方案(onclick="javascript:…")
我不时看到网页中使用了以下href。但是,我不知道这是要做什么或技术。有人可以详细说明吗?
<a href="javascript:;"></a>
javascript:在不应该使用该方案的地方使用该方案(onclick="javascript:…")
Answers:
一个<a>元件是无效的HTML,除非它有任一种href或name属性。
如果您希望它正确显示为链接(例如带下划线,手形指针等),则只有在具有href属性的情况下,它才会这样做。
因此,有时这样的代码有时被用作建立链接的方式,而不必在href属性中提供实际的URL 。开发人员显然希望链接本身不做任何事情,这是他知道的最简单的方法。
他可能在其他地方有一些javascript事件代码,当单击该链接时会触发这些事件,这将是他想要实际发生的事情,但是他希望它看起来像一个普通的<a>标记链接。
一些开发人员href='#'出于相同的目的使用,但这会导致浏览器跳到页面顶部,这可能是不需要的。而且他不能简单地将href留空,因为这href=''是指向当前页面的链接(即,它导致页面刷新)。
有解决这些问题的方法。在其中使用空的Javascript代码href就是其中之一,尽管它不是最佳解决方案,但它确实有效。
return false;还是event.preventDefault()那么href行动将永远不会被调用,所以你可以把东西在里面更明智。
<a>没有href或name不是无效的; 可以使用验证器轻松检查。
# 片段,则永远不会将其发送到Web服务器(或防火墙)。它仅由浏览器内部使用。在这种情况下,单击标记为<a href="#">... 的链接</a>不会导致您的浏览器向任何地方发送任何HTTP请求;要做的就是滚动到页面顶部。
有几种机制可以避免链接到达其目的地。问题中的一个不是很直观。
一个更清洁的选择是使用href="#no"where #no在文档中未定义的锚点。
您可以使用更多语义名称,例如#disable或#action以提高可读性。
该方法的好处:
缺点:
由于<a>元素不充当链接,因此在这些情况下,最好的选择不是使用<a>元素,而是<div>提供所需的类似链接的样式。
旧线程,但我想补充一点,开发人员使用此构造的原因不是创建无效链接,而是因为出于某些原因的javascript URL无法正确地将引用传递给活动html元素。
例如handler_function(this.id),onClick但不能用作javascript URL。
因此,您可以在编写符合专业标准的代码(涉及到您必须手动调整每个超链接的调用)或稍微非标准的代码(可以编写一次并在各处使用)之间进行选择。
因此,它通常用于在js代码中href而不是在事件监听器中编写js代码,onclick并避免使用#链接href来使a标记对html有效。
我研究了如何javascript:在href属性内部使用。
<a href="
javascript:
a = 4;
console.log(a++);
a += 2;
console.log(a++);
if(a < 6){
console.log('a is lower than 6');
}
else
console.log('a is greater than 6');
function log(s){
console.log(s);
}
log('function inplimentation working too');
">Click here</a>
通过此代码,您甚至可以在其中编写js代码,而不仅仅是调用函数。
已在Chrome 68.0.3440.106版(正式版)(64位)中进行了测试
在Firefox Quantom 61.0.1(64位)中经过测试
始终正确呈现链接的最佳方法是使用CSS,如下所示:
a {cursor: pointer !important}
人们应该避免遵循线程中提到的不必要的事情。