Javascript 使用Greasemonkey和jQuery通过更改相应输入字段的值来缩放Google电子表格
我在一个大型谷歌电子表格上进行协作,65%的缩放恰好是在屏幕上显示所有相关内容的最佳选择。由于每次手动设置缩放都很乏味,而且谷歌似乎没有为我提供存储给定缩放的方法,因此我尝试使用Greasemonkey和jQuery在页面加载时进行缩放 使用下面的代码,我只需要输入值(使用著名的waitforkyellements函数等待元素出现,然后更改其val),但我仍然需要手动点击Enter进行确认。到目前为止,我无法让页面以编程方式接受输入的值Javascript 使用Greasemonkey和jQuery通过更改相应输入字段的值来缩放Google电子表格,javascript,jquery,greasemonkey,Javascript,Jquery,Greasemonkey,我在一个大型谷歌电子表格上进行协作,65%的缩放恰好是在屏幕上显示所有相关内容的最佳选择。由于每次手动设置缩放都很乏味,而且谷歌似乎没有为我提供存储给定缩放的方法,因此我尝试使用Greasemonkey和jQuery在页面加载时进行缩放 使用下面的代码,我只需要输入值(使用著名的waitforkyellements函数等待元素出现,然后更改其val),但我仍然需要手动点击Enter进行确认。到目前为止,我无法让页面以编程方式接受输入的值 // ==UserScript== // @name
// ==UserScript==
// @name Google Table Auto Zoom
// @include https://docs.google.com/spreadsheets/d/1SjL_dgsxzj9y7E3JRBYR9gRxiM0ieMkbrGdybAstyt8/*
// @require https://code.jquery.com/jquery-3.4.1.min.js
// @require https://gist.github.com/raw/2625891/waitForKeyElements.js
// @version 2020
// ==/UserScript==
var done = false;
function zoomout(jNode) {
if (done == false) {
done = true;
jNode.val("65%").focus();
}
}
waitForKeyElements ('.goog-toolbar-combo-button-input[aria-label="Zoom"]', zoomout);
我尝试了多种方法让页面接受该值,例如:
Chris尝试为每个字符发射一个
按键
事件,首先是6,5%,谢谢@wOxxOm!不幸的是,我甚至不能得到要键入的第一个字符。也许谷歌只是因为“不信任”的问题而不接受任何模拟按键?我当前测试它的代码:jNode.focus().trigger(jQuery.Event('keypress',{keycode:54}));//工作到焦点();部分,但不会引发实际的键入,而使用键盘手动键入是可行的。我认为您应该使用本机DOM dispatchEvent而不是jQuery。似乎不可能在输入字段上模拟键入:(请参阅-是否有其他方法告诉电子表格页面更改缩放?document.execCommand应注意这一点,请尝试按每个字母使用它。
var e = jQuery.Event("keypress");
e.which = 13;
e.keyCode = 13;
jNode.trigger(e);
const ke = new KeyboardEvent("keydown", {
bubbles: true, cancelable: true, keyCode: 13
});
document.body.dispatchEvent(ke); // doesnt work
jNode.dispatchEvent(ke) // doesnt work either