如何确定哪个html页面元素具有焦点?
可能重复:
如何找出哪个DOM元素具有焦点?
有没有在JavaScript的方式来确定哪个HTML页面元素具有焦点?
使用document.activeElement
属性。
在Chrome2 +,Firefox3 +,IE4 +,Opera9.6 +和Safari4 +上支持document.activeElement
属性。
请注意,此属性将只包含接受按键的元素(如表单元素)。
看看这个博客文章 。 它提供了一个解决方法,以便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(因为input控件也失去焦点)。 如果您的应用程序需要activeElement值,即使浏览器窗口没有焦点,也可以删除模糊事件侦听器。
只是为了logging,有点晚,当然不支持旧的浏览器 :
var element = document.querySelector(":focus");
应该处理所有元素(例如也锚)。
也许document.activeElement
,不知道关于浏览器的支持。 似乎工作在Firefox和IE7,但我想你不得不在Opera中尝试它,等等。
检查底部的post 。 我认为这将工作…