Как смоделировать ключи, введенные во входном веб-элементе в Chrome 56 с помощью чистого JavaScript?
Я разрабатываю некоторую программную автоматизацию на веб-странице и пытаюсь ввести нажатие клавиши во входной элемент веб-браузера в Chrome 56 (в частности, 56.0.2924.87) и не может заставить его работать.
Я сделал домашнее задание и попытался сделать много онлайн-примеров, в том числе найденных здесь: Javascript - имитировать ключевые события на Chrome 53, но не повезло.
Это моя самая недавняя (в настоящее время неработающая) попытка, основанная на решении, предоставленном в вопросе выше:
<!DOCTYPE html>
<head>
<meta charset="utf-8" />
<title>Keyboard Events</title>
</head>
<body>
<input id="id_input" onkeydown="console.log(event);">
<button onclick="
var e = new Event('keydown');
e.keyCode = 65;
document.getElementById('id_input').dispatchEvent(e);
">click me</button>
</body>
</html>
Ответы
Ответ 1
С точки зрения реализации этой функции изнутри расширения Chrome, похоже, что это возможно с обходными решениями. Эти ссылки могут помочь.
Keydown, который не работает с расширением Chrome
Как инициализировать событие клавиатуры с данным char/keycode в расширении Chrome?
Однако на веб-странице это невозможно. По крайней мере, не с Chrome 56. Существует атрибут isTrusted
только для чтения объекта Event.
Событие "доверено" при вызове реального пользователя на клавиатуре и "не доверено" при вызове script.
Как указано здесь, ненадежные события не вызывают действие по умолчанию. Это присутствует с Chrome 53.