Программно вызывая Ctrl+S
Я хотел бы создать событие нажатия клавиши CtrlS. Используя JavaScript. В идеале решение работает в большинстве современных браузеров (до IE 9).
Я пишу тесты, и мне нужно проверить свой обработчик на привязки клавиш. CtrlS - только пример, это может быть любая привязка клавиш с помощью клавиши-модификатора. Я знаю о keyEvent.initKeyboardEvent()
метод, но я не смог использовать его правильно, чтобы вызвать то же событие, которое я получил при печати события полной клавиатуры после нажатия клавиши на клавиатуре.
2 ответа
Я хотел бы выдать событие нажатия клавиши CtrlS
Вы имеете в виду, чтобы вызвать диалоговое окно браузера "Сохранить как" или что-то еще? Это невозможно по соображениям безопасности. Было бы огромной проблемой безопасности, если бы это было так - представьте: каждый веб-сайт может произвольно запускать функции браузера.
Вы не можете и не должны по соображениям безопасности (как уже указывал Пекка). Вы всегда будете требовать взаимодействия пользователя между ними. Кроме того, представьте, что пользователи браузеров могут подать в суд на пользователей, поскольку различные программные события на клавиатуре приведут к подделке атак.
Смотрите этот пост для альтернатив и более подробной информации. Всегда есть флэш на основе копирования и вставки. Вот элегантный пример. В то же время это свидетельство того, почему Интернет отходит от поставщиков плагинов.
В случае применения политики CORS opt-in для аналогичного доступа к удаленному контенту применяется аналогичный подход к безопасности.
Ответ:
В нормальных условиях нет возможности программно запускать клавиши ввода в изолированной среде браузера.
Итог: я не говорю, что это не будет возможно в будущем, при специальных режимах браузера и / или привилегиях для достижения конечной цели игры или подобного пользовательского опыта. Однако до входа в такие режимы у пользователя будут запрашиваться разрешения и риски, аналогичные модели полноэкранного API. (Я включил поисковую ссылку в Google, так как она аккуратно включает соответствующие текстовые строки в результат поиска)