onOpen触发的功能停止工作

时间:2017-03-29 07:47:41

标签: javascript google-apps-script google-apps

前段时间我为我的一个电子表格编写了一个脚本,该脚本使用可安装的触发器onOpen来启动SpreadsheetApp.getUi函数。

该功能如下:

function addMenu()
{
  // adding custom menu 
  var ui = SpreadsheetApp.getUi();
  ui.createMenu('New menu')
  .addSubMenu(ui.createMenu('menu')                  
              .addItem('item', 'functionName')
              .addSubMenu(ui.createMenu('additive')
                          .addItem('subitem', 'subfunctionName')))
  .addToUi();
};

这个菜单就像一个魅力,使用可安装的触发器onOpen从电子表格中触发。这些菜单项调用的函数使用UserProperties,因此我确保它不是匿名运行的。

本周我注意到打开电子表格时菜单不再有效 - 只有在我直接从脚本编辑器中调用它时才能使用。

我不知道如何解决这个问题 - 我没有对脚本进行任何更改,并检查以确保没有其他人干涉它。这是迄今为止工作的相同脚本。

我非常感谢这一方面的帮助,至少可以说是令人费解的。

谢谢!

1 个答案:

答案 0 :(得分:1)

子菜单是否应该互相嵌套?如果没有,您可能正在寻找:

function addMenu() {
  var ui = SpreadsheetApp.getUi();
  ui.createMenu('New menu')
    .addSubMenu(ui.createMenu('menu')                  
      .addItem('item', 'functionName')
    )
    .addSubMenu(ui.createMenu('additive')
      .addItem('subitem', 'subfunctionName')
    )
    .addToUi()
};