Javascript 关注非输入/锚定元素?

Javascript 关注非输入/锚定元素?,javascript,html,dom,Javascript,Html,Dom,我正在开发一些JavaScript,它需要一个可以获得焦点的标记。我希望能够使用标记,但是标记无法获得焦点 看起来唯一可以获得焦点的元素是标记和。我正在试图找到一种方法,让标记(或任何其他容器元素)获得焦点。书签就是一种方法 从以下内容开始 <a href="#anchor"> 有点像一种变通方法,语义上不正确,但 a#foo { display: block; } a#foo:hover { cursor: default; } 然后使用JavaScript截取a#foo上的o

我正在开发一些JavaScript,它需要一个可以获得焦点的标记。我希望能够使用
标记,但是
标记无法获得焦点


看起来唯一可以获得焦点的元素是
标记和
。我正在试图找到一种方法,让
标记(或任何其他容器元素)获得焦点。

书签就是一种方法

从以下内容开始

<a href="#anchor">

有点像一种变通方法,语义上不正确,但

a#foo { display: block; }
a#foo:hover { cursor: default; }
然后使用JavaScript截取a#foo上的onClick事件并返回false。

您所说的“可以获得焦点”是什么意思?任何DOM元素都可以设置为接收大量javascript事件,包括
click
事件


或者你的意思是“可以用键盘进行标记”?如果是这样,并且如果不能使用
a
标记作为容器,请在元素上尝试。我不确定它是如何跨浏览器的,但至少在自己用javascript编写选项卡式ui之前尝试一下。

任何DOM元素都可以接收大多数事件,但“焦点”事件却不能接收,它似乎是为特定元素保留的,这些元素可能因浏览器而异。“tabindex”属性似乎在我的例子中起到了作用。我知道它不是一个标准值,但目前辅助技术获得锚定标记焦点的解决方法是将tabindex设置为-1。+1将
tabindex
属性设置为
使其能够(例如)接收焦点并触发按键事件;测试在Chrome v11、Firefox 4和IE9中运行。无论您是希望通过键盘将某个元素标记到,还是只希望单击(但不能单击),此答案中给出的链接都是其所在位置。