我为 Google 电子表格创建了一个脚本,该脚本只是添加了一个新的菜单项,如此处所述的自定义菜单项在电子表格中。然后我将此脚本部署为 Web 应用程序,我希望所有安装该应用程序的用户都能够看到新的菜单项。我被困在这一点上。
据我了解,当您将脚本部署为 Web 应用程序时,onOpen 函数失去了它的意义。因此,在 doGet 中,我为 onOpen 事件创建了自定义触发器,将 myOnOpen 处理程序附加到它并在 myOnOpen 中添加了一个菜单项,但该项目没有显示出来。
这是我的代码:
function doGet() {
var newSheet = SpreadsheetApp.create("new sheet");
var newId = newSheet.getId();
ScriptProperties.setProperty('newId', newId);
ScriptApp.newTrigger("myOnOpen")
.forSpreadsheet(newId)
.onOpen()
.create();
};
function myOnOpen() {
var newId = ScriptProperties.getProperty('newId');
var sheet = SpreadsheetApp.openById(newId);
var entries = [ { name : "Show bingo", functionName : "Bingo" } ];
sheet.addMenu("My Menu", entries);
};
function Bingo() {
Browser.msgBox("Bingo!");
};
因此,当安装该应用程序的用户打开“新工作表”电子表格时,他看不到“我的菜单”。我在这里做错了什么?为什么菜单项不显示?归根结底,我想创建一个 Web 应用程序,它通过额外的菜单和对话框扩展了 Google 电子表格 UI。
欢迎任何建议。谢谢!