在Google Script中,如何将脚本嵌入按钮?

时间:2013-04-03 16:09:53

标签: javascript button click google-apps-script

我指定Google脚本而不仅仅是javascript的原因是因为我在javascript中找到的示例都使用了html,Google Script在基本格式化命令之外似乎不能很好地运行。

我有一个函数formSubmitReply(),它根据表单提交发送电子邮件,另一个addToCalendar()自动将表单提交填充到Calendar事件中。这两个都经过独立测试,运行良好。

我尝试做的是在电子邮件中加入“添加到日历”按钮,点击后将执行addToCalendar()。

我遇到的困难是错误“TypeError:无法在对象Generic中找到函数addToCalendar”。我该如何解决这个问题?

以下是我的代码的相关部分:

// Button setup
function doGet() 
{

  var app = UiApp.createApplication();

  // Create button and give it a click handler
  var button = app.createButton("Add to Calendar").setId("button");
  button.addClickHandler(app.createServerHandler("formSubmitReply"));
  app.add(button);

  return app;

}

// Email function
function formSubmitReply(e) 
{

  // Call "button" application
  var app = UiApp.getActiveApplication();

  /* Additional function code; excluded here */

  // Send email
  GmailApp.sendEmail(userEmail,
                    "Event Support Request Submitted",
                     message + 
                     app.getElementById("button").addToCalendar(e),
                    {name:"Media Services"});

}

1 个答案:

答案 0 :(得分:0)

我认为通过电子邮件按钮调用应用程序脚本函数是不可能的(或者任何js虽然我可能会误认为那个)。您可以做的是从e序列化信息。然后将URL嵌入到应用脚本中,该脚本将处理作为参数传递的编码信息。网址长度有限,因此您可能希望嵌入一个表单,如果您发送的数据非常大,则会将数据提交到应用脚本。