【问题标题】:Determining which element has focus [duplicate]确定哪个元素具有焦点[重复]
【发布时间】:2010-11-03 19:57:51
【问题描述】:

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

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

【问题讨论】:

    标签: javascript javascript-events


    【解决方案1】:

    复制:

    长话短说:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-10-03
        • 2014-04-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-12-07
        相关资源
        最近更新 更多