javascript - 如何使用谷歌脚本创建子菜单

标签 javascript google-apps-script

我需要知道如何创建一个包含 2 个菜单项(AB)的简单菜单:第一个 (A) 包含 1 个项目 (A1 ),第二个(B),里面包含3个项目(B1,B2,B3)

我可以创建一个示例,但总是失败:

代码

      var handler = app.createServerHandler();
     //Create menu bar
      var menuBar = app.createMenuBar(true);

      var data =  ss.getSheets()[LOG_SHEET_INDEX].getDataRange().getValues();

      var lastRow = ss.getLastRow();
      for(var row = 1; row < lastRow; row++){
        var id_menu =1;
        if(data[row][0]==0){
          var nivel = data[row][1];
          var menuItem = app.createMenuItem(data[row][2], handler);

          var separator = app.createMenuItemSeparator();
          menuBar.addSeparator(separator);
          var subMenu = app.createMenuBar(true).setId("subMenu"+nivel);
          for(var i = 1; i< lastRow; i++){
            if(data[i][0]==nivel){
              var sm = app.getElementById("subMenu"+nivel)
              this[sm.addItem(data[row][2], handler)];
            }

          }menuItem.setSubMenu(sm);

        }menuBar.addItem(data[row][2], app.createMenuBar(true));

      }


      app.add(menuBar);

结果

fail

我需要类似的东西(隐藏A1,B1,B2,B3:当焦点A | B时显示):

    ____
    A
        A1
    ____
    B
        B1
        B2
        B3

这是我的传播:

fail2

请帮忙!!

最佳答案

嗯,正如 Serge 指出的那样。答案是错误的。同时我发现,真正的原因是什么: 具有子菜单的 MenuItem 不得具有处理程序:

 var menuBar=app.createMenuBar();
 var subb1=app.createMenuBar(true);
 subb1.addItem (app.createMenuItem("S1", handler1));
 subb1.addItem (app.createMenuItem("S2", handler2));
 var mi1=app.createMenuItem("X1", null); // passing null and not a handler makes submenu work...
 mi1.setSubMenu(subb1);
 menuBar.addItem(mi1);
 app.add(menuBar);

关于javascript - 如何使用谷歌脚本创建子菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13383464/

相关文章:

javascript - 强制 json_encode 在平面数组中创建数值字符串

javascript - d3 json嵌套数据映射,分组条形图

javascript - 如何在 Angular js 中将授权 header 发送到 http 请求(版本 1.4.8)

google-apps-script - Apps 脚本 - 计算可变范围内的行数

node.js - 使用 Google Apps 脚本执行 API 时出现 ScriptError

google-apps-script - GoogleApps Utilities.formatDate 返回错误的日期

javascript - Google Apps 脚本日历服务 : How to store and retrieve CalendarEvents using PropertiesService?

javascript - 为什么 fullstack-angular 生成器使用 Lo-Dash 的合并而不是 document.set?

javascript - 在 JavaScript 中使用 moment.js 转换纪元时间

google-apps-script - 如何使用 Google Apps Script 跳过 Google 幻灯片中的幻灯片?