确定哪个元素具有焦点

时间:2009-06-17 22:09:01

标签: javascript javascript-events

  

可能重复:
  How to determine which html page element has focus?
  How do I find out which Javascript element has focus?

有没有办法确定文档中哪个元素目前有焦点?理想情况下,无需走过任何元素。

2 个答案:

答案 0 :(得分:8)

重复:

长话短说:

有些浏览器(最初只有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);
}

答案 1 :(得分:1)

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