Василиса!
Чаще всего, чтобы спрятать экранную клавиатуру, достаточно убрать фокус с активного элемента:
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. Это был совет о веб‑разработке. Хотите знать всё о коде, тестах, фронтенд‑разработке, цеэсэсе, яваскрипте, рельсах и джейде? Присылайте вопросы.