Google apps script Google文档:使用userscript(tampermonkey)发送键盘事件

Google apps script Google文档:使用userscript(tampermonkey)发送键盘事件,google-apps-script,google-docs,keyboard-events,userscripts,tampermonkey,Google Apps Script,Google Docs,Keyboard Events,Userscripts,Tampermonkey,我想在谷歌文档上模拟一个键盘事件来改变缩放 我使用idzoomSelect和鼠标事件输入div: var button = document.getElementById("zoomSelect"); triggerMouseEvent (button, "mouseover"); triggerMouseEvent (button, "mousedown"); triggerMouseEvent (button, "mouseup"); function triggerMouseEvent

我想在谷歌文档上模拟一个键盘事件来改变缩放

我使用id
zoomSelect
和鼠标事件输入div:

var button = document.getElementById("zoomSelect");
triggerMouseEvent (button, "mouseover");
triggerMouseEvent (button, "mousedown");
triggerMouseEvent (button, "mouseup");


function triggerMouseEvent (node, eventType) {
    var eventObj        = document.createEvent('MouseEvents');
    eventObj.initEvent (eventType, true, true);
    node.dispatchEvent   (eventObj);
}
然后我想发送一个数字(比如9)。我尝试了所有这些选择,但都不起作用。输入不接收按键。我还尝试将事件直接发送到
文档
(而不是
按钮
),但没有成功

使用键盘事件:

var eventObj = document.createEvent("KeyboardEvent");
(eventObj.initKeyEvent || eventObj.initKeyboardEvent)("keypress", true, true, null,
               0, 0, 0, 0,
               0, character.charCodeAt(9));

button.dispatchEvent(eventObj);
button.dispatchEvent(new KeyboardEvent("keypress", {keyCode: 9}));
有事件(无事件):

活动:

var eventObj = document.createEvent("Events");
(eventObj.initKeyEvent || eventObj.initKeyboardEvent)("keypress", true, true);

eventObj.keyCode = 105;
eventObj.which = 105;
eventObj.ctrlKey = false;
eventObj.shiftKey = false;
eventObj.altKey = false;
button.dispatchEvent(eventObj);
使用新键盘事件:

var eventObj = document.createEvent("KeyboardEvent");
(eventObj.initKeyEvent || eventObj.initKeyboardEvent)("keypress", true, true, null,
               0, 0, 0, 0,
               0, character.charCodeAt(9));

button.dispatchEvent(eventObj);
button.dispatchEvent(new KeyboardEvent("keypress", {keyCode: 9}));
使用dispatchKeyEvent:

button.dispatchKeyEvent("9"); 
完整的

您的-With事件(不带s)将与按键事件一起使用:

var eventObj = document.createEvent('Event');
eventObj.initEvent('keypress', true, true);
eventObj.keyCode = 105;
button.dispatchEvent(eventObj);
您将看到在文档中光标位置插入了一个字符“i”。
并且调用了一个SAVE API。

您可以从中尝试将事件侦听器附加到iframe的实现。事件侦听器没有问题(我可以使用键盘触发MouseEvents)。我只在发送一个关键事件时遇到了麻烦(在谷歌文档的输入字段中发送一个像115这样的数字),谢谢你的帮助Prateek Jain,但它不起作用(我使用的是一个tampermonkey用户脚本)。缩放文本输入是select(如果我按下键盘上的某个键,它们会出现在缩放文本输入中),但脚本中的键永远不会发送。我也在搜索“保存api”,但我还是不明白你的意思。