如果未导入代码且仅在工作表中,则该功能可以正常工作。
.withSuccessHandler()不会将返回值传递给被调用的函数。
code.gs中的代码返回一个布尔值(日志获取它),用.withSuccessHandler()调用的函数未获取它,并且变量为 undefined 。
html
<html>
<form id="myForm">
[...]
<input type="button" value="Submit"
onClick="google.script.run.withSuccessHandler(DataSaved).withFailureHandler(Error).processForm(this.form)"
/>
</form>
<div id="Message"></div>
<script>
function DataSaved(ret){
if(ret==true){
document.getElementById('Message').innerHTML = "Finished!";
}else{
document.getElementById('Message').innerHTML = ret+"Wrong Sheet!";
}
};
function Error(err){
document.getElementById('Message').innerHTML = "An error occurred: "+err;
};
</script>
code.gs
function processForm(myForm) {
var data = myForm.data
var fu = ParseExport(data)
console.log(typeof fu);console.log(JSON.stringify(fu))
return fu
}
结果行是:undefinedWrong Sheet!
Stackdriver
Stackdriver-Protokolle
29.06.2019, 19:39:11
FEHLERBEHEBUNG
boolean
29.06.2019, 19:39:11
FEHLERBEHEBUNG
true
我不知道在哪里寻找错误了。甚至在脚本块中移动了google.script.run函数,以测试它是否进行了任何更改(不更改)。错误处理程序工作正常...
答案 0 :(得分:0)
这是我的错误,因为导入的Sheet有一个包装器类来处理对导入的脚本函数的调用,这也需要传递返回值。