Я пытаюсь запустить событие клавиатуры на страницу с помощью javascript в Chrome. У меня был подход, который использовался для работы в Firefox:
pressKey = function(key, shift) {
var evt = document.createEvent('KeyboardEvent');
evt.initKeyEvent("keypress", false, true, null, false, false,
shift, false, keyCode(key), key.charCodeAt(0));
document.dispatchEvent(evt);
}
где ключ - это желаемый ключ, а keyCode изменяет строчные буквы в верхний регистр, а также вызывает charCodeAt().
Моя проблема в том, что события в Safari/Chrome не имеют initKeyEvent, а initKeyboardEvent. Основное различие, которое я мог заметить, заключалось в том, что вам нужно передать ключ в качестве ключевого идентификатора (который выглядит как символ Юникода) вместо передачи кода ключа и keychar. Тем не менее мне все еще не удается заставить его работать.
Я также пробовал подход JQuery, описанный здесь без успеха.
EDIT: Я отлаживал это немного дальше, и кажется, что событие в Chrome запускает слушателей, но keyCode/charCode всегда равен 0. Я также попытался установить evt.keyCode или evt.charCode.