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

Javascript 在Google脚本中,如何将脚本嵌入到按钮中?,javascript,button,click,google-apps-script,Javascript,Button,Click,Google Apps Script,我之所以指定googlescript,而不仅仅是javascript,是因为我发现javascript的示例都使用html,而googlescript在基本格式化命令之外似乎不能很好地使用html 我有一个函数formSubmitReply()可以根据表单提交发送电子邮件,还有一个函数addToCalendar()可以自动将表单提交填充到日历事件中。这两个都经过独立测试,功能良好 我试图做的是在电子邮件中包含一个“添加到日历”按钮,单击该按钮时将执行addToCalendar() 我经常遇到的困

我之所以指定googlescript,而不仅仅是javascript,是因为我发现javascript的示例都使用html,而googlescript在基本格式化命令之外似乎不能很好地使用html

我有一个函数formSubmitReply()可以根据表单提交发送电子邮件,还有一个函数addToCalendar()可以自动将表单提交填充到日历事件中。这两个都经过独立测试,功能良好

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

我经常遇到的困难是错误“TypeError:在object 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"});

}

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