Подтвердить что ты не робот

Как определить, какой элемент html-страницы имеет фокус?

Возможный дубликат:
Как узнать, какой элемент DOM имеет фокус?

Есть ли способ в javascript определить, какой элемент html-страницы имеет фокус?

4b9b3361

Ответ 1

Используйте свойство document.activeElement.

Свойство document.activeElement поддерживается в Chrome 2+, Firefox 3+, IE4 +, Opera 9.6+ и Safari 4 +.

Обратите внимание, что это свойство будет содержать только элементы, которые принимают нажатия клавиш (например, элементы формы).

Ответ 2

Отметьте этот пост в блоге. Это дает обходное решение, так что 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, даже если окно браузера не имеет фокуса, вы можете удалить прослушиватель событий размытия.

Ответ 4

Может быть document.activeElement, не знаю о поддержке браузера tho. Кажется, работает в Firefox и IE7, но я думаю, вам нужно попробовать его в Opera и т.д.

Ответ 5

Отметьте нижний пост. Я думаю, что это сработает...