Я только что столкнулся с проблемой. Я хотел написать небольшой скрипт, который записывал бы в поле ввода, имитируя нажатия клавиш. Но это не работает.
<input type="text" id="mainInput" />
const inputElement = document.getElementById("mainInput");
for (let i = 0; i < 100; i++) {
const newEvent = new KeyboardEvent("keypress", {
charCode: 115,
key: "s",
which: 115
});
inputElement.dispatchEvent(newEvent);
}
Я также подключил прослушиватель событий и могу подтвердить, что мое событие запущено правильно. Я предполагаю, что это потому, что флаг isTrusted
равен false
, и я понимаю, что не могу изменить это, когда создаю событие с помощью javascript.
Но теперь я дважды просмотрел документацию ввода и ввода текстаполе на мдн. В нем нет упоминаний об этом. Из-за этого я не могу быть уверен, действительно ли это флаг isTrusted
или я что-то не так делаю. Я довольно уверен в этом, но это все равно отличается от того, чтобы иметь определенное подтверждение.
Итак, мой вопрос двоякий: 1. Это флаг isTrusted
, почему он не работает? 2. Где я мог прочитать об этом? Я пропустил это на MDN? Или это скрыто в каком-то неясном RFC?