Я хочу имитировать события нажатия клавиш для заданного элемента textarea на html-странице. Поскольку я использую хром, я вызвал initKeyboardEvent
для своей переменной и передал ключевой код, который хочу ввести, в текстовую область. Вот что я пробовал:
var keyEvent = document.createEvent('KeyboardEvent');
keyEvent.initKeyboardEvent('keydown', true, false, null, 0, false, 0, false, 77, 0);
inputNode.dispatchEvent(keyEvent);
В этом коде я набираю букву m
, однако текстовая область получает только keyCode 13
, который является клавишей Enter
. Итак, я попробовал код переопределения, который я видел в Интернете, который устанавливает значение keyCodeVal, но безуспешно
var keyEvent = document.createEvent('KeyboardEvent');
Object.defineProperty(keyEvent, 'keyCode', {
get : function() {
return this.keyCodeVal;
}
});
keyEvent.initKeyboardEvent('keydown', true, false, null, 0, false, 0, false, 77, 0);
keyEvent.keyCodeVal = 77;
inputNode.dispatchEvent(keyEvent);
Кто-нибудь знает, как установить значение keyCode?