Имитация нажатия клавиш в Chrome срабатывает нормально, но не срабатывает правильная клавиша

Я хочу имитировать события нажатия клавиш для заданного элемента 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?

27
задан alex 17 July 2014 в 01:55
поделиться