从标签顺序中删除HTML标签

时间:2018-11-21 18:49:58

标签: javascript html

在我的应用的标签循环中,<html>标签占据了一个制表位。我想从点击循环中删除<html>标签。

我尝试将tabindex="-1"添加到<html>标记中,但是至少在IE11上,这似乎并未从Tab循环中删除该元素。我快要用JS旋转自己的逻辑,如果document.activeElement === <html>跳到下一个可聚焦元素,但是我想知道是否有更简单的方法。

该解决方案需要跨主要浏览器支持:IE11,Edge,FF,Chrome,Safari。

有什么想法吗?

3 个答案:

答案 0 :(得分:3)

我访问了tabindex属性的HTML规范-> https://html.spec.whatwg.org/#the-tabindex-attribute

下面是第二段:

当省略该属性时,用户代理将应用默认值。 (没有方法可以使要渲染的元素完全不聚焦而不禁用或使其不活跃。)

我们已经清楚地提到,使任何元素不可聚焦的唯一方法是禁用或使其在DOM中不可见。

我仍在搜索,并将在此发布更新。

此外,我还尝试复制此问题,但无法在IE上做到这一点。(未尝试在其他浏览器上进行复制)。

更新1:

我找到了difference in tabIndex between HTML4 AND HTML5

据说,尽管HTML5允许在任何元素上添加tabIndex属性,但可能没有任何效果。这也适用于HTML元素。我知道,我们如何知道HTML元素是否为焦点?

答案 1 :(得分:0)

根据我的简单研究,我发现您可以使用您可以使用tabindex="-1"

W3C HTML5规范支持负的tabindex值。

您也可以使用,该功能适用​​于大多数浏览器:

element.removeAttribute('tabindex');

我在jquery中找到了这种方式,但是我不确定

$('#yourelment').prop('tabIndex', -1);

请查看那些链接以获取更多详细信息:

答案 2 :(得分:-1)

在Chrome v53中,诸如“ tabIndex = -1”之类的黑客不适用于我。

这适用于chrome和大多数浏览器:

    element.removeAttribute('tabindex');