Javascript 确定哪个元素具有焦点

Javascript 确定哪个元素具有焦点,javascript,javascript-events,Javascript,Javascript Events,可能的重复项: 有没有办法确定文档中当前有焦点的元素?理想情况下,无需遍历任何元素。复制: 长话短说: 一些浏览器(最初只支持IE,但Firefox3和Safari已经加入)支持document.activeElement属性,它可以实现您想要的功能 对于较旧的浏览器,您需要此黑客来模拟该属性: function _dom_trackActiveElement(evt) { if (evt && evt.target) { document.

可能的重复项:

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

复制:

长话短说:

一些浏览器(最初只支持IE,但Firefox3和Safari已经加入)支持
document.activeElement
属性,它可以实现您想要的功能

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

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);
}

您可以将onfocus附加到身体元素,并让焦点更改事件冒泡出现