[ПРИМЕЧАНИЕ]: я проверил SO ответы, которые могли бы сработать 5 лет назад и которые, похоже, не работают. Пожалуйста, не копируйте и не вставляйте этот мусор. спасибо.
Задача:
Возьмите строку, преобразуйте ее в последовательность нажатий клавиш, сделайте что-нибудь с этой последовательностью и в конечном итоге придете к выводу, что веб-страница, в которую вы хотите поместить эту строку, прошла через все, что ей нужно пройти, как если бы строковые символы были последовательно нажимается человеком через клавиатуру.
Вопрос:
Как, черт возьми, это сделано?
element.value = 'test123' // BAD EXAMPLE
если вы не знаете, почему это плохой пример, не отвечайте на этот вопрос.
element.dispatchEvent(/*event for keydown*/)
element.dispatchEvent(/*event for textInput*/)
element.dispatchEvent(/*event for keyup*/)
^ это ... технически это должно работать, но я не нашел рабочего примера.
Кроме того, по-видимому, могут быть некоторые проблемы с event.isTrusted, которые я не знаю, как обойти.
... возможно я не использую нужные инструменты ...
chrome.input.ime ... похоже, это связано с chromiumOS, и хром не реагирует на него. (по крайней мере, к тому, что я написал (я использую Windows))
может быть chrome.debugger .... ??? хотя я не могу понять, как передать событие клавиатуры элементу через этот API
TL / DR
Пожалуйста, опубликуйте правильный пример (который работает за пределами element.onkeydown (***));
что приводит к тому, что нажатие клавиши регистрируется веб-страницей, как если бы она исходила от клавиатуры (или ОС), хотя на самом деле это от javascript.