Василиса!

Чаще всего, чтобы спрятать экранную клавиатуру, достаточно убрать фокус с активного элемента:

document.activeElement.blur()

Иногда в айфреймах или попапах с фиксированным позиционированием этот способ не работает: фокус исчезает, клавиатура остаётся висеть поверх страницы. В таких случаях советую метод грубой силы: создаём инпут за пределами экрана, помещаем в него фокус и удаляем.

// создаём инпут и прячем его, вытаскивая за экран
const fakeInput = document.createElement('input')
fakeInput.style.cssText = 'position: fixed; left: -9999px;'
document.body.appendChild(fakeInput)
​
// помещаем в него фокус
fakeInput.focus()
​
// через некоторое время уничтожаем инпут
setTimeout(() => {
  fakeInput.blur()
  document.body.removeChild(fakeInput)
}, 50)

Ещё по теме

P. S. Это был совет о веб‑разработке. Хотите знать всё о коде, тестах, фронтенд‑разработке, цеэсэсе, яваскрипте, рельсах и джейде? Присылайте вопросы.

Веб‑разработка
Отправить
Поделиться
Запинить

Рекомендуем другие советы