gpt4 book ai didi

javascript - 为什么IE7会在没有tabindex的元素上添加tabindex ="0"?

转载 作者:行者123 更新时间:2023-11-29 15:48:00 25 4
gpt4 key购买 nike

我正在开发一个需要大量键盘导航的 Web 应用程序。

我已经控制了 Tab 键导航,并使用以下 jQuery 选择示例选择了所有元素:

elements = $("div").find("[tabindex]:visible").not("[tabindex='0'], :disabled");

所以我不选择不可见元素、禁用元素或 tabindex 为 0 的元素。

这在 Firefox、Chrome 和 IE8+ 中运行良好。可悲的是,该项目需要对 IE7 的支持。出于某种原因,IE7 似乎将 tabindex="0"添加到没有我们设置的 tabindex 的元素,并且 elements 在 IE7 中包含带有 tabindex="0"的元素,尽管选择器不应添加它们。

有人知道为什么 IE7 会这样吗?是否有什么可以解决的?

在我们最坏的情况下,这会导致性能下降,其中 elements 在所有其他浏览器中包含超过 300 个元素,IE7 除外,IE7 包含近 800 个元素。

编辑:

我在 IE7 中也设法编写了一个不包含 tabindex="0"元素的选择器。

elements = $("div").find("[tabindex][tabindex!=0][tabindex!=-1]:visible:not(:disabled)");

最佳答案

HTML 使用 tabindex attribute控制 Tab 键顺序。所以默认为所有元素添加tabindex,使页面元素键盘可访问。它也用于 focus pseudo class在其他浏览器中。

引用资料

关于javascript - 为什么IE7会在没有tabindex的元素上添加tabindex ="0"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8801150/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com