我正在寻找一个允许聚焦的HTML元素的最终列表,即当调用focus()时,哪些元素将被聚焦?

我正在编写一个jQuery扩展,它可以处理可以被关注的元素.我希望这个问题的答案能让我明确我的目标.

推荐答案

没有明确的列表,这取决于浏览器.我们唯一的标准是DOM Level 2 HTML,根据这一标准,只有focus()种方法的元素是

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

  • 带有href的HTMLanchoreElement/HTMLAreaElement
  • HTMLInputElement/HTMLSelectElement/HTMLTextAreaElement/HTMLButtonElement,但不是disabled(如果你try ,IE实际上会给你一个错误),而且出于安全原因,文件上传有不寻常的行为
  • HTMLIFrameElement(尽管聚焦它没有任何用处).其他嵌入元素,可能我还没有全部测试过.
  • 任何带有tabindex的元素

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

Html相关问答推荐

为什么在这种情况下是弹性基础:自动不解决内容的大小?

如何获得一个背景图像,不是模糊的内部容器,但模糊的外部'

如何在不影响子列表的情况下在HTML(OL Li)上同时加数字和列表?

如何在div中淡入和淡出渐变背景?

如何在伪元素背景中定位多个CSS径向梯度

悬停效果在新西兰表上不起作用

页脚与主要内容重叠

SVG动画只有在打开S开发工具的浏览器时才开始播放

Chrome浏览器错误:上的主题验证判断https://pagead2.googlesyndication.com/失败

如何使用css创建六边形棋盘?

调整 Rmarkdown 输出的 html_document 的标题和副标题之间的间距

如何影响 HTML 元素的哪些子元素导致其增长,哪些不增长?

当我们在vue中使用截断大文本时如何显示标题属性?

如何垂直对齐列表中的图像和文本?

调整屏幕大小时标题在图像下方重叠 - HTML

如何将元素均匀分布到容器的边缘?

将背景图像裁剪成两半

暗模式转换器

使用 TailwindCSS 将徽标放在左上角,将菜单放在右上角

如何使列表的第一个元素比 css 中的其他元素大?