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




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






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

376   5  

5 ответов:

использовать document.activeElement собственность.

The 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);
}

что-то отметить:

эта реализация немного чрезмерно пессимистична; если окно браузера теряет фокус, activeElement устанавливается в null (так как входной элемент управления также теряет фокус). Если ваше приложение нуждается в значении activeElement, даже если окно браузера не имеет фокуса, вы можете удалить событие размытия слушатель.

просто для протокола, немного поздно, и конечно не поддерживается в старых браузерах:

var element = document.querySelector(":focus");

должен работать на всех элементах (например, также якоря).

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

Регистрация внизу поста. Я думаю, что это сработает...

Comments

    Ничего не найдено.