小编典典

哪些 HTML 元素可以接收焦点?

all

我正在寻找允许获得焦点的 HTML 元素的最终列表,即在调用它们时哪些元素将成为焦点focus()

我正在编写一个 jQuery 扩展,它适用于可以成为焦点的元素。我希望这个问题的答案能让我具体了解我所针对的元素。


阅读 210

收藏
2022-04-25

共1个答案

小编典典

没有一个明确的列表,这取决于浏览器。我们拥有的唯一标准是DOM Level 2 HTML,根据该标准,唯一具有方法focus()的元素是
HTMLInputElementHTMLSelectElement和。这明显省略了和。HTMLTextAreaElement``HTMLAnchorElement``HTMLButtonElement``HTMLAreaElement

今天的浏览器focus()在 HTMLElement 上定义,但一个元素实际上不会获得焦点,除非它是以下之一:

  • 带有 href 的 HTMLAnchorElement/HTMLAreaElement
  • HTMLInputElement/HTMLSelectElement/HTMLTextAreaElement/HTMLButtonElement 但不带disabled(如果您尝试,IE 实际上会给您一个错误),并且出于安全原因,文件上传具有异常行为
  • HTMLIFrameElement (尽管聚焦它并没有做任何有用的事情)。其他嵌入元素也可能,我还没有全部测试过。
  • 任何带有 a 的元素tabindex

根据浏览器的不同,这种行为可能还有其他细微的例外和补充。

2022-04-25