Google Apps脚本查找功能来电显示

And*_*rse 2 javascript google-apps-script

我有一个Google Apps脚本,可以为每个ClickHandler动态生成按钮和分配,而ClickHandler又调用一个函数.我的问题是,因为每个按钮调用相同的功能,我找不到一种方法来识别它们中的哪一个实际上进行了调用.这是一个代码示例:

var handler = app.createServerHandler("buttonAction");
for (i=1,...) {
  app.createButton(...).setId(i).addClickHandler(handler);
}
function buttonAction() {
  //How do I know what button made the call?
}
Run Code Online (Sandbox Code Playgroud)

小智 5

另一种选择是使用e.parameter.source值来确定触发要调用的serverHandler的元素的ID.

这是一个例子:

function doGet(e) {
  var app = UiApp.createApplication();
  var handler = app.createServerHandler("buttonAction");

  for (var i = 0; i < 4; i++) {
    app.add(app.createButton('button'+i).setId(i).addClickHandler(handler));
  }
  return app;
}


function buttonAction(e) {
  var app = UiApp.getActiveApplication();
  Logger.log(e.parameter.source);    
}
Run Code Online (Sandbox Code Playgroud)

e.parameter.source将包含元素的ID,然后您可以使用它来调用app.getElementById(e.parameter.source)...