如何找出哪个 DOM 元素具有焦点?

2022-08-29 21:59:45

我想在JavaScript中找出哪个元素目前有重点。我一直在查看DOM,还没有找到我需要的东西。有没有办法做到这一点,以及如何做到这一点?

我寻找这个的原因:

我正在尝试使键像箭头一样,并在输入元素表中导航。选项卡现在有效,但输入,默认情况下,箭头似乎不是。我已经设置了关键处理部分,但现在我需要弄清楚如何在事件处理函数中移动焦点。enter


答案 1

使用document.activeElement,它在所有主流浏览器中都受支持。

以前,如果您试图找出哪个表单字段具有焦点,则无法找到。若要在较旧的浏览器中模拟检测,请将“focus”事件处理程序添加到所有字段,并将最后一个聚焦的字段记录在变量中。添加“模糊”处理程序,以便在最后一个聚焦字段的模糊事件时清除变量。

如果需要删除,可以使用模糊; .它会将 更改为 。activeElementdocument.activeElement.blur()activeElementbody

相关链接:


答案 2

正如JW所说,你找不到当前聚焦的元素,至少以独立于浏览器的方式。但是,如果你的应用仅是IE(有些是...),你可以通过以下方式找到它:

document.activeElement

看起来IE毕竟没有错,这是HTML5草案的一部分,似乎至少得到了最新版本的Chrome,Safari和Firefox的支持。