指定菜单功能的参数

use*_*189 4 menu google-apps-script

这是Google Apps脚本中的一个片段,用于在Google文档/表单/表格中添加菜单.如Menu#addItem方法中所述,它调用了menuItem2函数,但是片段中没有包含关于如何addItem在函数调用中添加参数时调用的示例,或者这是不可能的?

function onOpen() {
  var ui = SpreadsheetApp.getUi();
  // Or DocumentApp or FormApp.
  ui.createMenu('Custom Menu')
    .addItem('First item', 'menuItem1')
    .addSeparator()
    .addSubMenu(ui.createMenu('Sub-menu')
      .addItem('Second item', 'menuItem2'))
    .addToUi();
}

function menuItem2() {
  SpreadsheetApp.getUi() // Or DocumentApp or FormApp.
     .alert('You clicked the second menu item!');
}

function menuItem2(PARAMETER_HERE) {
  // codes    
}
Run Code Online (Sandbox Code Playgroud)

Ser*_*sas 5

您无法将参数添加到菜单调用的函数中.

一个简单的解决方法是将参数存储在别处(例如在scriptProperties中),如果参数未定义,则读取这些参数.

function menuItem2(PARAMETER) {
  // if PARAMETER is undefined then read default parameter in scriptProperties
  // codes    
}
Run Code Online (Sandbox Code Playgroud)

在此配置中,您可以使用"normal"参数从脚本中的其他位置调用menuItem2函数,它将按预期处理.