Google文档:使用userscript(tampermonkey)

时间:2018-04-16 18:47:35

标签: google-apps-script google-docs keyboard-events userscripts tampermonkey

我想在Google文档上模拟键盘事件来更改缩放。

我使用鼠标事件输入标识为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),但它不起作用。

使用KeyboardEvent:

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

1 个答案:

答案 0 :(得分:0)

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

var eventObj = document.createEvent('Event');
eventObj.initEvent('keypress', true, true);
eventObj.keyCode = 105;
button.dispatchEvent(eventObj);

您将在文档中光标位置看到一个字符“ i”。 然后调用SAVE API。