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

Если вы не хотите использовать сплайсинг, вы можете использовать фильтр, как показано ниже:

let result = nominees.filter(n => n.id !== 10);
66
задан Community 23 May 2017 в 10:29
поделиться

4 ответа

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

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

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

83
ответ дан Aron Rotteveel 24 November 2019 в 14:58
поделиться

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

47
ответ дан Paolo Bergantino 24 November 2019 в 14:58
поделиться

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

3
ответ дан cic 24 November 2019 в 14:58
поделиться

Проверьте нижнее сообщение . Я думаю, что это работало бы...

0
ответ дан Jason Punyon 24 November 2019 в 14:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: