0

我指定 Google Script 而不仅仅是一般的 javascript 的原因是因为我找到的 javascript 示例都使用 html,而 Google Script 似乎不能很好地与基本格式化命令一起使用。

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

我试图做的是在电子邮件中包含一个“添加到日历”按钮,单击该按钮将执行 addToCalendar()。

我一直遇到的困难是错误“TypeError: Cannot find function addToCalendar in object Generic。” 我该如何解决这个问题?

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

// 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"});

}
4

1 回答 1

0

我认为不可能从电子邮件按钮(或任何 js,尽管我可能在那个按钮上弄错)调用这样的应用程序脚本函数。您可以做的是序列化来自 e 的信息。然后将 url 嵌入到应用程序脚本中,该脚本将处理作为参数传递的编码信息。Url 长度是有限的,因此如果您发送的数据非常大,您可能希望嵌入一个将数据提交到应用程序脚本的表单。

于 2013-04-03T16:28:35.827 回答