我正在寻找如何在js中模拟按键事件的示例。
我发现的示例都使用the deprecated Event.initEvent method。
当我尝试使用the recommended KeyboardEvent时,它不起作用-输入不会更新。
<input id="myInput" />
const element = document.getElementById('myInput')
const keypressEvent = new KeyboardEvent('keypress', {
code: 'KeyA'
})
element.dispatchEvent(keypressEvent)
上面的代码有什么错误或缺失?该元素是否需要首先关注?
答案 0 :(得分:2)
function emitKey() {
const element = document.getElementById('myInput');
element.dispatchEvent(new KeyboardEvent('keypress',{'key':'a'}));
}
function handleKeypress(target, event) {
if(event.keyCode == 0 && event.key != "") {
target.value += event.key;
}
}
emitKey();
<input id="myInput" onkeypress="handleKeypress(this, event);" />