如何确定哪个 html 页面元素具有焦点?
IT技术
javascript
html
                    2021-01-20 17:28:36
                
                    
                
            
        5个回答
            document.activeElementChrome 2+、Firefox 3+、IE4+、Opera 9.6+ 和 Safari 4+ 支持该属性。
请注意,此属性将仅包含接受击键的元素(例如表单元素)。
看看这篇博文。它提供了一种解决方法,以便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);
}
需要注意的一点:
这个实现有点过于悲观了;如果浏览器窗口失去焦点,则 activeElement 设置为 null(因为输入控件也失去焦点)。如果您的应用程序即使在浏览器窗口没有焦点时也需要 activeElement 值,您可以删除模糊事件侦听器。
也许document.activeElement,不知道浏览器支持。似乎可以在 Firefox 和 IE7 中使用,但我想您也必须在 Opera 等中尝试一下。
检查底部的帖子。我认为那会奏效...
其它你可能感兴趣的问题