Как очистить фокус в javascript?
Я знаю, что это не должно быть сложно, но я не мог найти ответ на Google.
Я хочу выполнить фрагмент javascript, который очистит фокус от любого элемента, на котором он находится, не зная заранее, на каком элементе находится фокус. Он должен работать на Firefox 2, а также более современные браузеры.
есть хороший способ сделать это?
6 ответов:
.focus()
а то.blur()
что-то еще произвольное на Вашей странице. Поскольку только один элемент может иметь фокус, он переносится на этот элемент, а затем удаляется.
ответ:
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);
document.activeElement.blur();
работает неправильно на IE9 - он стирает все окно браузера, если активным элементом является тело документа. Лучше проверить на этот случай:
if (document.activeElement != document.body) document.activeElement.blur();