编辑
我应该说,我的目标是抓住一个div上的keydown事件。我看到这个页面http://www.quirksmode.org/js/events/keys.html#测试键盘事件,它表明keydown在除文档和正文或某种形式元素或链接之外的任何东西的唯一方式是在其上声明tabindex。但我在W3C网站上阅读:
The following elements support the
tabindex attribute: A,AREA,BUTTON,
INPUT,OBJECT,SELECT,and TEXTAREA.
所以我有点困惑,为了符合标准,使我的用例工作,该怎么办?
EDIT2
解决方法
此属性具有与tabindex完全相同的行为,适用于任何元素。
The ‘nav-index’ property is an input-method-neutral way of specifying the sequential navigation order (also known as “tabbing order”).
This property is a replacement for the HTML4/XHTML1 attribute ‘tabindex’
作为可能是最好的标准兼容的解决方案的用例,导航索引只由Opera解释迄今(截至2012年6月),也被标记为“功能风险”由W3C,因此可能会随时被丢弃。
可选的跨浏览器解决方案是:
>非标准兼容:设置DIV上的tabindex属性。这将工作在所有常见的浏览器。
>标准兼容:将DIV替换为没有href属性集的锚元素(A),使其与display:block样式,并添加tabindex属性。
关于BoltClock的观点,我同意Tabing顺序是非常合乎逻辑的(文本选择顺序和Tabing顺序与文档中元素被排列的顺序密切相关)。另一方面,CSS今天有更广泛的目的。它不仅可以操纵文档的内容(内容属性),而且还可以操作何时和如果事件被触发:即,使用指针事件,显示或z-index指针事件的顺序将改变。如果这些是非常基本的CSS属性,为什么你不应该能够影响KeyBoardEvents?