发布于 2009-01-27 15:29:38
使用 属性。
Chrome 2+、火狐3+、IE4+、Opera 9.6+和Safari 4+都支持document.activeElement
属性。
请注意,此属性将仅包含接受击键的元素(如表单元素)。
发布于 2009-01-27 15:27:53
查看this blog post。它提供了一种解决方法,使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 (因为输入控件也失去了焦点)。如果您的应用程序需要blur值,即使浏览器窗口没有焦点,您也可以删除activeElement事件侦听器。
发布于 2011-05-17 22:51:23
顺便说一句,有点晚了,当然还有not supported in old browsers
var element = document.querySelector(":focus");
应该在所有元素上工作(例如,还有锚点)。
https://stackoverflow.com/questions/483741
复制相似问题