首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何确定哪个html页面元素具有焦点?

如何确定哪个html页面元素具有焦点?
EN

Stack Overflow用户
提问于 2009-01-27 15:03:30
回答 5查看 60.9K关注 0票数 71

可能重复:

How do I find out which DOM element has the focus?

在javascript中有没有一种方法来确定哪个html页面元素具有焦点?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2009-01-27 15:29:38

使用 属性。

Chrome 2+、火狐3+、IE4+、Opera 9.6+和Safari 4+都支持document.activeElement属性。

请注意,此属性将仅包含接受击键的元素(如表单元素)。

票数 89
EN

Stack Overflow用户

发布于 2009-01-27 15:27:53

查看this blog post。它提供了一种解决方法,使document.activeElement可以在所有浏览器中工作。

代码语言:javascript
复制
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 (因为输入控件也失去了焦点)。如果您的应用程序需要blur值,即使浏览器窗口没有焦点,您也可以删除activeElement事件侦听器。

票数 48
EN

Stack Overflow用户

发布于 2011-05-17 22:51:23

顺便说一句,有点晚了,当然还有not supported in old browsers

代码语言:javascript
复制
var element = document.querySelector(":focus");

应该在所有元素上工作(例如,还有锚点)。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/483741

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档