我想在 Google 文档上模拟键盘事件来更改缩放。
我使用鼠标事件输入了 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)。我尝试了所有这些选项,但它们不起作用。输入没有收到按键。我还尝试将事件直接发送到 document
(而不是 button
),但没有成功。
使用键盘事件:
var eventObj = document.createEvent("KeyboardEvent");
(eventObj.initKeyEvent || eventObj.initKeyboardEvent)("keypress", true, true, null,
0, 0, 0, 0,
0, character.charCodeAt(9));
button.dispatchEvent(eventObj);
有事件(没有s):
var eventObj = document.createEvent('Event');
eventObj.initEvent('keydown', true, true);
eventObj.keyCode = 105;
button.dispatchEvent(eventObj);
有事件:
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);
使用新的 KeyboardEvent:
button.dispatchEvent(new KeyboardEvent("keypress", {keyCode: 9}));
使用 dispatchKeyEvent:
button.dispatchKeyEvent("9");
完整 script
最佳答案
你的 - With 事件(没有 s)将与按键事件一起工作:
var eventObj = document.createEvent('Event');
eventObj.initEvent('keypress', true, true);
eventObj.keyCode = 105;
button.dispatchEvent(eventObj);
您会看到一个字符“i”被插入到光标位置的文档中。 并调用 SAVE API。
关于google-apps-script - 谷歌文档 : dispatch a keyboard event with userscript (tampermonkey),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49864255/