Javascript - 模拟 space 栏按键

Javascript - Emulate a space bar keypress

我到处搜索,阅读了 MDN 上的文档,但我似乎无法解决这个问题。

我想使用 Javascript 模拟客户端按下 space 栏。

我试过:

var e = new KeyboardEvent('keydown');
e.which = e.keyCode = 32; // 32 is the keycode for the space bar
document.dispatchEvent(e);

然而,无论出于何种原因,这都没有奏效;如果将以下事件处理程序放在上面的代码之前:

document.addEventListener('keydown', function(ev){
  console.log(ev.which);
});

0 已记录到控制台。

由于某种原因,事件被触发但密钥始终是0

有人可以帮我解决吗?

你可以这样做

var e = new KeyboardEvent('keydown',{'keyCode':32,'which':32});

演示:https://jsfiddle.net/5se13tmg/

参考:https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/KeyboardEvent

像这样创建你的事件变量:

var e = new Event('keydown');

演示:https://jsfiddle.net/zw7d7d61/