Я пытаюсь имитировать ключевое событие (нажатие) на Chrome 53. Все решения, которые я нашел на StackOverflow, похоже, не работают.
Моя цель состоит в том, чтобы иметь функцию, которая получает keyCode
и имитирует нажатие клавиши с ее помощью. Требуется чистый JS
function keyPressSimulate(keyCode) {...?}
Примеры кода, которые я уже пробовал:
Node.prototype.fire=function(type,options){
var event=new CustomEvent(type);
for(var p in options){
event[p]=options[p];
}
this.dispatchEvent(event);
}
document.fire("keyup",{ctrlKey:true,keyCode:90,bubbles:true})
Еще один:
presskey: function(k) {
var e = new Event("keydown");
e.keyCode= k;
e.which=e.keyCode;
e.altKey=false;
e.ctrlKey=true;
e.shiftKey=false;
e.metaKey=false;
document.dispatchEvent(e);
}
А также:
var e = new KeyboardEvent("keydown", {bubbles : true, cancelable : true, key : "Q", shiftKey : true});
global.document.dispatchEvent(e);
А также:
presskey: function(k) {
var keyboardEvent = document.createEvent("KeyboardEvent");
var initMethod = typeof keyboardEvent.initKeyboardEvent !== 'undefined' ? "initKeyboardEvent" : "initKeyEvent";
keyboardEvent[initMethod](
"keydown",
true, // bubbles oOooOOo0
true, // cancelable
window, // view
false, // ctrlKeyArg
false, // altKeyArg
false, // shiftKeyArg
false, // metaKeyArg
k,
0 // charCode
);
global.document.activeElement.dispatchEvent(keyboardEvent);
}