温馨提示:本文翻译自stackoverflow.com,查看原文请点击:javascript - Google apps script get keycode events from document
dom-events events google-apps-script iframe javascript

javascript - Google Apps脚本从文档中获取键码事件

发布于 2020-04-16 10:51:56

我正在尝试在用户键入时修改Google文档的某些部分。

具体来说,我想添加一个功能来缩进多行文本。意思是当用户选择多行文本,然后单击“ tab”键时,它应该缩进所有这些行

为此,我认为除了使用以下方法读取选择内容外,我还必须获取用户键入的当前keyCode:

 var doc = DocumentApp.getActiveDocument().getCursor();
    var els = doc.getElement(),
    txt = els.asText().getText()

我已经在工作了。但是问题是:

在我的客户端,当我这样做时:

window.addEventListener("keyup", function(e) {
        console.log(e.keyCode);
    })

仅在用户选择侧边栏时激活,而在用户键入google文档本身时不激活。

我理解为什么会这样,因为应用程序在iframe中的iframe中运行,但是我仍然认为可能有一种方法可以某种方式获取按下的键,或者至少可以某种方式确定用户是否尝试按tab键。

所以:有没有什么方法可以检测用户是否按下了Tab键,或者是否有其他方法可以通过Google Apps脚本轻松缩进多行?最好不要要求用户单击应用程序脚本本身上的按钮,但是如果那是唯一的方法,那么就可以了……但是有没有可能的方法来获取用户在google doc本身上按下的键?

查看更多

提问者
bluejayke
被浏览
46
Diego 2020-02-04 11:56

在Google文档中是不可能的。您需要一个“ onEdit”或“ onChange”触发器,但是很遗憾,它们仅在Google表格中可用,而在Google文档中不可用。您可以使用此附加组件触发器页面中列出的表来查看所有Apps脚本(不仅是附加组件)中可用的触发器。