Программно вызывая Ctrl + S - PullRequest
       49

Программно вызывая Ctrl + S

2 голосов
/ 29 декабря 2011

Я хотел бы выдать событие Ctrl S с использованием JavaScript. В идеале решение работает в большинстве современных браузеров (до IE 9).

Я пишу тесты, и мне нужно проверить свой обработчик на привязки клавиш. Ctrl S является лишь примером, это может быть любая привязка клавиш с помощью клавиши-модификатора. Я знаю о методе keyEvent.initKeyboardEvent(), но я не смог использовать его правильно, чтобы вызвать то же событие, которое я получил при распечатке события полной клавиатуры после нажатия клавиши на клавиатуре.

Ответы [ 2 ]

7 голосов
/ 29 декабря 2011

Я хотел бы выдать Ctrl S событие нажатия клавиши

Вы имеете в виду, чтобы вызвать диалоговое окно браузера «Сохранить как» или что-то еще? Это невозможно по соображениям безопасности. Было бы огромной проблемой безопасности, если бы это было так - представьте: каждый веб-сайт может произвольно запускать функции браузера.

1 голос
/ 10 ноября 2013

Вы не можете и не должны по соображениям безопасности (как уже указывал Пекка).Вы всегда будете требовать взаимодействия пользователя между ними.Кроме того, представьте себе возможность того, что производители браузеров будут поданы в суд на пользователей, так как различные программные события на клавиатуре приведут к подделке атак.

См. Этот пост для альтернатив и более подробной информацииВсегда есть флэш на основе копирования и вставки.Вот элегантный пример .В то же время это свидетельство того, что Интернет отходит от поставщиков плагинов.

Существует аналогичный подход к безопасности, применяемый в случае политики opt-in CORS для доступа к удаленному контенту.программно.

Ответ:
В нормальных условиях невозможно программно вызвать клавиши ввода в изолированной среде браузера .

Итог: Я не говорю, что это не будет возможно в будущем, при особых режимах браузера и / или привилегиях по отношению к конечной цели игры или подобным пользовательским интерфейсам.Однако перед входом в такие режимы у пользователя будут запрашиваться разрешения и риски, аналогичные полноэкранной модели API .(Я включил поисковую ссылку в Google, так как она аккуратно включает в себя текстовые строки в результатах поиска)

enter image description here

...