确定哪个元素具有焦点[重复]

Posted

技术标签:

【中文标题】确定哪个元素具有焦点[重复]【英文标题】: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?

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

【问题讨论】:

【参考方案1】:

复制:

How to determine which html page element has focus? How do I find out which Javascript element has focus?

长话短说:

一些浏览器(最初只有 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 元素,并让焦点更改事件冒泡

【讨论】:

以上是关于确定哪个元素具有焦点[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何确定哪个html页面元素有焦点? [复制]

如何测试元素是不是有焦点[重复]

jQuery:是焦点元素吗? [复制]

检测特定文本框是不是有焦点[重复]

使用 JavaScript 或 jQuery 检测哪个表单输入具有焦点

确定哪个 DOM 元素导致父元素的尺寸增加