2

可能的重复:
如何确定哪个 html 页面元素具有焦点?
如何找出哪个 Javascript 元素具有焦点?

有没有办法确定文档中的哪个元素当前具有焦点?理想情况下,无需遍历任何元素。

4

2 回答 2

9

复制:

长话短说:

一些浏览器(最初只有 IE,但 Firefox 3 和 Safari 跃跃欲试)支持该document.activeElement属性,从而实现您想要的。

对于较旧的浏览器,您需要此 hack 来模拟该属性:

function _dom_trackActiveElement(evt) {
    if (evt && evt.target) { 
        document.activeElement = evt.target == document ? null : evt.target;
    }
}

function _dom_trackActiveElementLost(evt) { 
    document.activeElement = null;
}

if (!document.activeElement) {
    document.addEventListener("focus",_dom_trackActiveElement,true);
    document.addEventListener("blur",_dom_trackActiveElementLost,true);
}
于 2009-06-17T22:12:08.090 回答
2

您可以将 onfocus 附加到您的 body 元素,并让焦点更改事件冒泡

于 2009-06-17T22:13:05.513 回答