从html onclick事件调用javascript文件中的函数

时间:2013-05-08 19:21:43

标签: javascript html function google-apps-script

这让我发疯了 - 我无法弄清楚为什么它不会起作用!

我有两个文件:google脚本中的myPage.html和myCode.gs。我已将html文件部署为Web应用程序,我希望提交按钮的onclick事件从myCode.gs文件触发emailTech函数,但它不起作用!当我直接从文件中运行该函数时,它工作正常。

我做了几个小时的研究,并尝试添加<script type="text/javascript" src="myCode.gs"></script>,但在刷新网络应用时会导致错误。我已经尝试将onClick事件中的函数调用为onClick= "google.script.run.emailTech()"onClick= "emailTech()",但都无法正常工作。我也尝试将emailTech函数加载到标题中的脚本标记中,但这也不起作用!我错过了什么?请帮忙!

myPage.html文件:

    <script type="text/javascript"></script>
    <body>
    <input type="submit" onclick="emailTech();" value="Submit" />
    </body>

myCode.gs文件:

    function doGet() {
  return HtmlService.createHtmlOutputFromFile('myPage');
}

function emailTech(){

  Logger.log("is this firing?");
  var message = "This is the email message";
  MailApp.sendEmail("XYZ@abc.com", "This is the subject", message );

}

2 个答案:

答案 0 :(得分:2)

你实际上是这样的:

<script type="text/javascript"></script>
<body>
<input type="button" onclick="emailTech();" value="Submit" />
</body>

不要使用submit;使用button。提交和onclick处理程序的语义有点奇怪(不仅仅是因为HtmlService沙盒,但即使是一般)并且与google.script.run不能很好地兼容。这在HtmlService用户指南中有记录:

“您不能将此技术与常规提交按钮一起使用”

答案 1 :(得分:1)

编辑:新答案 - 使用google.script.run

<script type="text/javascript"></script>
<body>
<input type="button" onclick="google.script.run.emailTech();" value="Submit" />
</body>