模拟按键事件(在纯js中)

时间:2020-02-27 13:28:10

标签: javascript dom dom-events

我正在寻找如何在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)

上面的代码有什么错误或缺失?该元素是否需要首先关注?

1 个答案:

答案 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);" />