Эта же функция отлично работает, если код не импортирован, а только в листе.
.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 в блок скрипта, чтобы проверить, если она что-то меняет (не делает). Обработчик ошибок работает нормально ...