Я знаю, что это не должно быть так сложно, но я не смог найти ответ в Google.
Я хочу выполнить фрагмент JavaScript, который очистит фокус от любого элемента, на котором он находится, не зная заранее, на каком элементе находится фокус. Он должен работать как в Firefox 2, так и в более современных браузерах.
Есть ли хороший способ сделать это?
javascript
focus
Andres
источник
источник
Ответы:
Ответ:
document.activeElement
Чтобы делать то, что вы хотите, используйте
document.activeElement.blur()
Если вам нужна поддержка Firefox 2, вы также можете использовать это:
источник
document.activeElement.blur()
способ - добиться этого..focus()
а потом.blur()
еще что-то произвольное на твоей странице. Поскольку только один элемент может иметь фокус, он передается этому элементу, а затем удаляется.источник
overflow: clip
стилизованного элемента. Но вы можете просто использовать поле, которое уже существует на странице. Или создайте один только для этой цели и удалите его снова.Работает неправильно в IE9 - он стирает все окно браузера, если активный элемент является телом документа. Лучше проверить для этого случая:
источник
Ни один из приведенных здесь ответов не является полностью правильным при использовании TypeScript, так как вы можете не знать, какой тип элемента выбран.
Поэтому это было бы предпочтительным:
Кроме того, я бы не рекомендовал использовать решение, представленное в принятом ответе, поскольку получающееся в результате размытие не является частью официальной спецификации и может прерваться в любой момент.
источник
dummyElem.focus () где dummyElem - скрытый объект (например, имеет отрицательный zIndex)?
источник
Вы можете вызвать window.focus ();
но перемещение или потеря фокуса обязательно мешает любому, кто использует клавишу табуляции для перемещения по странице.
Вы можете прослушать код 13 и отказаться от эффекта, если нажать клавишу табуляции.
источник
С jQuery это просто:
$(this).blur();
источник
this
должен быть сфокусированным элементом, в то время как в вопросе явно говорится, что OP не знает сфокусированный элемент заранее.