Как Вы очищаете фокус в JavaScript?

Я знаю, что это не должно быть то, что трудно, но я не мог найти ответ на Google.

Я хочу выполнить часть JavaScript, который очистит фокус от любого элемента, который это идет, не зная заранее, какой элемент фокус идет. Это должно работать над firefox 2, а также более современными браузерами.

Существует ли хороший способ сделать это?

141
задан Jon Seigel 16 April 2010 в 19:36
поделиться

4 ответа

Ответ: document.activeElement

--- редактировать ----

Технически: document.activeElement.blur ()

---- редактировать 2 ----

function onElementFocused(e)
{
    if (e && e.target)
        document.activeElement = e.target == document ? null : e.target;
} 

if (document.addEventListener) 
    document.addEventListener("focus", onElementFocused, true);
150
ответ дан 23 November 2019 в 23:10
поделиться

dummyElem.focus () где dummyElem - это скрытый объект (например, с отрицательным zIndex)?

3
ответ дан 23 November 2019 в 23:10
поделиться

Можно вызвать window.focus();

, но перемещение или потеря фокуса обязательно помешает любому, кто использует клавишу tab для обхода страницы.

Вы можете прослушать код клавиши 13 и отказаться от эффекта, если нажата клавиша tab.

1
ответ дан 23 November 2019 в 23:10
поделиться

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

86
ответ дан 23 November 2019 в 23:10
поделиться
Другие вопросы по тегам:

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