Часто на собеседовании могут спросить об управлении состоянием фокуса. Обычно вопрос подаётся в контексте следующей задачи:
Представим, что у нас есть страница авторизации. Как сделать так, чтобы при открытии страницы пользователь сразу же был сфокусирован на поле ввода логина?
Начнем с того, у тега input есть прекрасный атрибут autofocus, который и был придуман для решения таких задач:
html1<input id="login" name="login" autofocus /> 2
Его проблема заключается лишь в том, что работает этот атрибут не всегда, когда хотелось бы, а его поддержка составляет всего 83.5 процента.
Тогда мы приходим к решению этой задачи через JavaScript:
javascript1document.getElementById('login').focus(); 2
Ведь есть не менее прекрасный метод focus, после вызова которого, фокус перенесётся на конкретный элемент. Его поддержка уже значительно лучше, а самое главное — весь контроль за происходящим на странице лежит в наших руках, что, в целом, достаточно удобно.
О методе focus знают уже многие, но знаете этот вопрос может развиться: как посмотреть, на каком элементе мы сейчас сфокусированы?
Такой вопрос уже может поставить многих в ступор, потому что с этим далеко не каждый день работаешь. Но, на самом деле, всё просто:
javascript1document.activeElement 2
У документа есть свойство activeElement, на которое мы и можем завязаться.
Статья была полезной?
Читайте также:
— 2 минуты
Как создать массив фиксированной длины?
На самом деле, способов множество. Можно создать простой массив пустых элем...
— 2 минуты
Как реагировать на изменения объекта
В JavaScript обычные объекты не умеют уведомлять о своих изменениях, однако...
— 2 минуты
Что такое Server-Sent Events
SSE — это технология для однонаправленного соединения между сервером и клие...