Возможный дубликат:
Как узнать, какой элемент DOM имеет фокус?
Есть ли способ в javascript определить, какой элемент html-страницы имеет фокус?
Возможный дубликат:
Как узнать, какой элемент DOM имеет фокус?
Есть ли способ в javascript определить, какой элемент html-страницы имеет фокус?
Используйте свойство document.activeElement
.
Свойство document.activeElement
поддерживается в Chrome 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);
}
Что-то примечание:
Эта реализация немного чрезмерно пессимистична; если окно браузера теряет фокус, для активированного элемента установлено значение null (поскольку управление входом также теряет фокус). Если вашему приложению требуется значение activeElement, даже если окно браузера не имеет фокуса, вы можете удалить прослушиватель событий размытия.
Только для записи немного поздно, и, конечно, не поддерживается в старых браузерах:
var element = document.querySelector(":focus");
Должен работать на всех элементах (например, на якорях).
Может быть document.activeElement
, не знаю о поддержке браузера tho. Кажется, работает в Firefox и IE7, но я думаю, вам нужно попробовать его в Opera и т.д.
Отметьте нижний пост. Я думаю, что это сработает...