【发布时间】:2020-04-02 19:13:29
【问题描述】:
我有一个以前只针对 Google 文档的插件,我正在尝试扩展该功能集以包括 Google 表格。在开发模式下,我可以设置一个条件来检测哪种文档类型处于活动状态(文档或工作表),然后显示相应的菜单。当我发布最新版本的插件时,插件菜单在文档和表格中都停止工作。
我猜这与“onOpen()”周围的权限有关,但我不确定如何处理这个问题。 G Suite Marketplace 允许您指定插件支持多个编辑器。
这是在开发中工作的代码:
function onOpen(e) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var doc = DocumentApp.getActiveDocument();
if(ss != null && ss != undefined) {
var sheetsUI = SpreadsheetApp.getUi();
sheetsUI.createAddonMenu()
.addItem('Name', 'function')
.addToUi();
}
if(doc != null && doc != undefined) {
var docsUI = DocumentApp.getUi();
docsUI.createAddonMenu()
.addItem('Name', 'function')
.addToUi();
}
}
如果我删除有条件的东西,并且只包括编辑器特定的菜单(文档的文档,工作表的工作表),菜单会正确显示。
【问题讨论】:
-
如果您认为这是权限问题,请尝试可安装的 onOpen
-
您好@Eli,您的项目中的
onOpen是哪种类型的触发器?请记住,简单的onOpen触发器会自动触发,而不需要用户授权——这可能是您的问题的原因。您是否尝试过使用可安装的触发器,就像@Cooper 提到的那样?干杯! -
感谢你们俩。我尝试了这条路线,但这不是解决方案。事实证明,我的条件检查抛出了一个错误,解决方案的灵感来自@alan wells 下面的 - 将菜单包装在 try/catch 块中。
标签: google-apps-script google-sheets google-docs gsuite-addons