如何禁用<a>标签的选项卡

Rak*_*esh 35 html javascript javascript-events

<a>在网页上使用链接标签.如何禁用Tab密钥选择其中任何一个?

Ser*_*sky 167

或者,您可以选择纯HTML解决方案.

<a href="http://foo.bar" tabindex="-1">inaccessible by tab link</a>
Run Code Online (Sandbox Code Playgroud)

HTML5规范说:

如果值为负整数
用户代理必须设置元素的tabindex焦点标志,但不应允许使用顺序焦点导航到达元素.

  • 它没有验证.http://www.w3.org/TR/html401/interact/forms.html#adef-tabindex说"此值必须是0到32767之间的数字." 有一个简单有效的方法来做到这一点? (5认同)
  • +1始终支持非脚本解决方案(非工作!)而不是非脚本解决方案. (2认同)

meo*_*ouw 5

我必须防止带有和溢出的div:auto css规则之前有一个制表符停止位,我所做的是(转置为a):

var links = document.getElementsByTagName( 'a' );

for( var i = 0, j =  links.length; i < j; i++ ) {
    links[i].setAttribute( 'tabindex', '-1' );
}
Run Code Online (Sandbox Code Playgroud)

使用 tabindex 而不是模糊意味着焦点将跳到下一个元素。

您确定要禁用 tabindex 吗?这对于无需鼠标的导航来说非常重要。

刚刚注意到纯 HTML 中的类似答案


Eva*_*ark -5

编辑:嗨,这个答案的原作者在这里。不要使用这个。向下滚动。StackOverflow 不会让我删除这个答案,因为它已被接受。


您可以对这些链接执行类似的操作:

 <a href="http://foo.bar" onfocus="this.blur()">Can't focus on this!</a>
Run Code Online (Sandbox Code Playgroud)

不过,您应该使用下面的答案。

/sf/answers/31998081/

  • 我不明白为什么这个答案被否决了。1)这是问题的有效解决方案。2) `tabindex="-1"` 并不在所有浏览器中工作,所以这是一个很好的计划 B. 3) Evan 没有**控制权来接受这个作为答案。来吧人们.. (5认同)
  • 亚历克斯,这就是为什么我更新了我的答案,说最好使用下面的答案。 (2认同)