没有href属性的锚标签是否安全?
使用锚点标签而不包括href
属性是否可以,而是使用JavaScript单击事件处理程序? 所以我会完全省略href
,甚至没有空( href=""
)。
在HTML5中,使用没有href
属性a
元素是有效的。 它被认为是一个“占位符超链接”。
例:
<a>previous</a>
在w3c锚点标记参考页面上查找“占位符超链接”: https : //www.w3.org/TR/2016/REC-html51-20161101/textlevel-semantics.html#the-a-element 。
这里也提到维基: https : //www.w3.org/wiki/Elements/a
占位符链接用于您想要使用锚点元素的情况,但不能在任何位置导航。 这可以方便地在导航菜单或面包屑path中标记当前页面。 (旧的方法是使用span标签或一个名为“active”或“current”的类的定位标签来设置它的样式,用JavaScript来取消导航。)
如果您想要在运行时通过JavaScriptdynamic设置链接的目的地,则占位符链接也很有用。 您只需设置href属性的值,并且锚标签变为可点击。
也可以看看:
这是可以的,但同时会导致一些浏览器变慢。
http://webdesignfan.com/yslow-tutorial-part-2-of-3-reducing-server-calls/
我的build议是使用<a href="#"> </a>
如果您使用JQuery,请记住还要使用:
.click(function(event){ event.preventDefault(); // Click code here... });
简短的回答:不。
很长的回答:
首先,没有href属性,它不会是一个链接。 如果它不是一个链接,那么它不会是键盘(或呼吸开关,或其他各种不基于指针的input设备)可访问(除非你使用tabindex
HTML5function,而不是普遍支持)。 对于没有键盘访问的控件来说是非常罕见的。
第二。 当JavaScript不运行时(因为从服务器加载缓慢,因特网连接断开(例如移动列车上的移动信号),JS被closures等),应该有另一种select。
利用不显眼的JS 逐步增强 。
这个标签没有href属性就可以使用。 与这里的许多答案相反,实际上在没有href的情况下创build锚点是有其标准的原因。 在语义上,“a”是指锚点或链接。 如果你用这个意思来做任何事情,那么你很好。
没有href的标签的一个标准用法是创build命名链接。 这使您可以使用name = blah的锚点,稍后您可以使用href =#blah创build锚点以链接到当前页面的已命名部分。 但是,这已被弃用,因为您也可以以相同的方式使用ID。 作为一个例子,你可以使用id = header的头部标签,稍后你可以有一个指向href =#头部的锚点。
然而,我的观点并不是build议使用名称属性。 只提供一个你不需要href的用例,因此推理为什么它不是必需的。
当使用多级菜单时,没有“href”的<a>
标签可能会很方便,您需要扩展下一级,但不希望该菜单标签成为活动链接。 我从来没有使用过这种方式的任何问题。
从可访问性的angular度来看<a>
没有一个href是不可能的,所有的链接应该是可以制表符的,所以如果你没有href,可以添加一个tabindex ='0'。
如果你必须使用href来实现向后兼容,那么最好使用它
<a href="javascript:void(0)">link</a>
而不是#,如果你不想使用该属性
在某些浏览器中,如果您没有提供href标记,则会遇到问题。 我build议你编写你的代码如下所示:
<a href="#" onclick="yourcode();return false;">Link</a>
你可以用你自己的函数或逻辑来代替你的code(),但是记得加上return false; 声明在最后。
我能够做到这一点:
<a id="dumb-button" href="#" onclick="return false;">Link</a>
而忽略了点击。 然后我使用jQuery来捕捉“哑键”点击并触发我的代码(隐藏一些div /显示一个div)。