我想知道以下结构的哪种形式是语义正确的,如果我想使用触发javascript回调但不会使窗口导航到另一个地方的achor:
javascript:
window.addEventListener('load', function() {
document.getElementById('AuxAnchor').addEventListener('click', function(e) {
// Do something
e.preventDefault(); // Don't navigate to anywhere
}, false)
}, false);
HTML:
使用空白值定义href属性:
<a id="AuxAnchor" href="">Click me</a>
定义的href属性缺少文档内ID:
<a id="AuxAnchor" href="#">Click me</a>
未定义的href属性:
<a id="AuxAnchor">Click me</a>
请注意,在后者(未定义的href属性)中,我必须使用样式模拟超链接外观,但这基本上只是一个整容问题,而且它根本不会打扰我如此。
答案 0 :(得分:0)
从语义上讲,只需定义一个没有属性的<a></a>
即可。
引用HTML 4.01 spec:
作者也可以创建一个
A
元素,指定没有锚点,即, 没有指定href
,name
或id
。
答案 1 :(得分:0)
HTML5中的所有选项均正确无误:http://www.w3.org/TR/html-markup/a.html
如果您想涵盖问题的不同角度,请检查一下辅助功能(残障人士)指南:
答案 2 :(得分:0)
在HTML 4.01中,标记可以是超链接或锚点。在 HTML5,标签始终是超链接,但如果它没有href 属性,它只是超链接的占位符。
HTML5有一些新属性,有些HTML 4.01属性没有 更长时间的支持。