JS-强制打印死键

问题描述 投票:1回答:1

我需要在按下所有键(包括死键(例如´,^))时将它们捕获并打印出来。我注意到,在正常情况下,只有在后面加上例如空间,因此需要两个输入“´”和“”来产生“´”。由于我需要在第一个输入上打印它,因此我尝试手动触发该空间,如下所示:

onKey: async function (event) {

...

  if (event.key === "Dead") {
    const fakeInput = new KeyboardEvent("keydown", {
      key: " ",
      view: global,
    });
  document.body.dispatchEvent(fakeInput);
  }

...

}

但是这只会产生“”,其中不包含死键。而且死键仍然处于队列中,因为如果我按下一个键,例如“ a”,我将得到“á”。

我正在监听“ keydown”(这也是为什么我也尝试伪造它的原因,并且监听发生在整个身体上:

document.body.onkeydown = (ev) => {
    this.onKey(ev);
};

所以我可以强制将死键移出此队列吗?还是有其他方法可以做到?我希望我的问题很清楚,否则,我将尝试添加更多信息。

javascript typescript events keyboard-events
1个回答
0
投票

用于将输入组合成字符的软件称为输入法编辑器

© www.soinside.com 2019 - 2024. All rights reserved.