这让我发疯了 - 我无法弄清楚为什么它不会起作用!
我有两个文件: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 );
}
答案 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>