以不推荐使用的方式模拟键盘按下?

Simulating keyboard press in a way that isn't deprecated?

我正在寻找一种模拟键盘按下的方法(如标题所示)。我环顾四周,主要发现了这两个 SO 问题:

这些问题是它们都使用 KeyboardEvent.initKeyboardEvent() 事件,根据 MDN 它已被弃用。有没有不推荐使用的功能的不同方法来完成同样的事情?

我想知道这一点,因为我正在使用 Chrome 的 TamperMonkey 扩展程序为 YouTube 创建脚本。此脚本将在按下 [space] 时触发 KK 是 YouTube 的切换 play/pause 按钮。我的 [space] 侦听器与以下代码完美配合:

document.addEventListener("keydown", function(e) {
    if(e.keyCode==32) {
        e.preventDefault();
    }
}, false);

此外,我真的在寻找一种纯粹的 JavaScript 方法。

如果您使用 jQuery 执行此操作,您将创建您的活动。

如果你想创建一个事件,你初始化对象然后调度事件。

https://developer.mozilla.org/en-US/docs/Web/API/Event/Event

document.addEventListener("keypress", function(e) {
  alert(e.which);
});
var e = new Event("keypress");
e.which = 65;
e.keyCode = 65;
document.dispatchEvent(e);
<p id="r">Alerts on event</p>