iframe 内元素的 Tabindex

Posted

技术标签:

【中文标题】iframe 内元素的 Tabindex【英文标题】:Tabindex for elements inside iframe 【发布时间】:2012-03-06 18:14:27 【问题描述】:

我有一个 iframe,里面是一个带有文件类型输入元素和图像元素的表单。

当使用tab键时,它聚焦于整个iframe而不是聚焦于输入框,下一次按下tab聚焦于为文件类型的输入元素出现的浏览按钮。

我的要求是当我按tab时,焦点在输入文本框,然后是浏览按钮,最后是图像元素。

我尝试将tabindex 设置为 0,但没有成功。

请建议如何通过元素控制标签顺序。

【问题讨论】:

【参考方案1】:

您在 iframe 中的表单与主页是分开的,因此您需要将 iframe 中的对象放到主页上,以便 tabindex 像您需要的那样工作。

一种方法是使用 Ajax 加载表单,而不是使用 iframe。这样您就可以根据需要动态加载和设置 tabindex。

一旦你解决了有两个页面的问题,即'main'和'iframe',你只需要依次在每个元素上设置tabindex,增加值以显示所需的标签顺序。唯一需要注意的是,您不能在图像上设置 tabindex。一种解决方法是将图像包装在接受 tabindex 的元素中,例如 a 元素...

类似下面的东西应该可以工作,输入,按钮,链接(图片)

<input tabindex="1" name="" value="" id="" type="text" />

<button tabindex="2" name="" value="browse" id="browse" />

<a href="" tabindex="3"><img src="" /></a>

有关 tabIndex 属性的更多信息(带有示例),请参阅此页面

http://www.w3schools.com/jsref/prop_html_tabindex.asp

还有这个属性的可访问性指南

http://webdesign.about.com/od/usability/a/aa071105.htm

【讨论】:

以上是关于iframe 内元素的 Tabindex的主要内容,如果未能解决你的问题,请参考以下文章

JS 获取 iframe内元素,及iframe与html调用

iframe 内元素的 Tabindex

(selenium+python)_UI自动化04_定位iframe框架内元素

使用数据属性更改 iframe 内元素的 CSS

使用 jQuery 获取 iframe 内元素的高度

修改iframes内元素的样式