Я пытаюсь имитировать пользовательский ввод в браузере с помощью JavaScript. События кликов создаются и отправляются успешно, но по некоторым причинам аналогичный код для событий на клавиатуре не работает вообще.Диспетчерское событие клавиатуры не работает в JavaScript
var event = document.createEvent("KeyboardEvent"); event.initKeyEvent("keydown", true, true, window, false, false, false, false, 87, 0); document.getElementById("id").dispatchEvent(event);
Это возвращает истину, но соответствующий символ не появится в поле ввода. Я также пробовал использовать keypress и keyup, которые тоже не работают (протестированы против FF и Chrome). Это запрещено браузером по некоторым причинам безопасности, или я делаю что-то неправильно? Есть ли обходной путь, чтобы заставить его работать?
Вы были правы, обработчик события «keypress» на самом деле вызван, когда я отправляю событие программно. Я не понимаю, почему это считается угрозой безопасности? Я всегда могу поместить некоторые данные в поле значений соответствующего ввода и даже отправить форму с этими данными. Какой вопрос он решает? –