Javascript 谷歌文档模拟键盘

Javascript 谷歌文档模拟键盘,javascript,google-docs,keypress,Javascript,Google Docs,Keypress,我需要在谷歌文档中使用JavaScript模拟键盘,以便能够打印或删除光标位置上的字符。 不幸的是,模拟按键事件的解决方案不适合我。我尝试了使用jQuery和不使用jQuery。 经过调查,我发现谷歌文档有虚拟键盘。单击虚拟键可调用此功能: C.MOa = function(a) { this.dispatchEvent(new Q(Td, {keyCode: a})) }; 其中,Td是字符串“action”和Q某个事件类。 使用java脚本发送此事件的正确方法是什么?谷歌文档中还有其他

我需要在谷歌文档中使用JavaScript模拟键盘,以便能够打印或删除光标位置上的字符。
不幸的是,模拟按键事件的解决方案不适合我。我尝试了使用jQuery和不使用jQuery。
经过调查,我发现谷歌文档有虚拟键盘。单击虚拟键可调用此功能:

C.MOa = function(a) {
  this.dispatchEvent(new Q(Td, {keyCode: a}))
};
其中,
Td
是字符串“action”和
Q
某个事件类。

使用java脚本发送此事件的正确方法是什么?谷歌文档中还有其他模拟键盘的方法吗?

似乎谷歌文档有特殊的iframe来处理键盘事件。以下是它的内容:

<html>
    <head></head>
    <body spellcheck="false" role="textbox" aria-label="Document content" contenteditable="true" style="background-color: transparent;"></body>
</html>


只需将键盘事件发送到此文档,即可在google文档上打印字符。

在google文档的控制台中粘贴以下代码

const input = document.querySelector(".docs-texteventtarget-iframe").contentDocument.activeElement;
    
// Insert the character in the document and trigger the save API call
const eventObj = document.createEvent("Event");
eventObj.initEvent("keypress", true, true);
eventObj.keyCode = 105;
input.dispatchEvent(eventObj);

您将看到在文档中插入字符“i”。

正如关于jQuery事件的注释:使用
$(elm)发出的事件。触发器(yourEvent)
不是真正的事件,也不是真正的DOM冒泡(至少在我上次查看jQuery时是这样),因为这些事件仅由jQuery本身检测。