debugging GAS:调试HTML服务

9fkzdhlc  于 2022-11-14  发布在  其他
关注(0)|答案(1)|浏览(148)

我正在尝试使用HTMLService来管理简单表单。这是一个典型的HTML表单(NATIVE选项是为了可移植性):
form.gs

function htmlTest (){
  var html = HtmlService.createHtmlOutputFromFile('form');  
  html.setSandboxMode(HtmlService.SandboxMode.NATIVE);
  SpreadsheetApp.getUi().showModalDialog(html, "Sample Form");
}
 
function cBack (el1, el2){
  Browser.msgBox('Data sent');
  Logger.log(el1);
  Logger.log(el2);
}

form.html

Enter field 1: <input name="name1"  id='input1'>
<br>
Enter field 2: <input name="name2" id='input2'>
<br>
<input type='button' value='Submit' onclick='fParser()'>
 
<script>
 
function fParser() { 
   var el1=document.getElementById('input1').value;
   console.log(el1);
   var el2=document.getElementById('input2').value;
   console.log(el2);
   google.script.run.cBack(el1, el2);
   google.script.host.close();
}
</script>
  • 如何有效地调试从提供的HTML触发的回调?*

回拨未启动时该怎么办?
我发现有时候只需关闭并重新打开文档即可解决问题:是否有更有效的方法来重新加载代码?

eit6fx6z

eit6fx6z1#

我发现调试HTML页面中的所有内容更容易,使用withSuccessHandler返回变量。这样你就可以继续编辑.gs,并在控制台上单击一个按钮获得新的结果。
例如:

google.script.run.withSuccessHandler(debugging).cBack(el1, el2);
google.script.run.withSuccessHandler(debugging).anotherCallBacl(el);

function debbugging( logs ){
  console.log( logs );
}

和.gs:

function cBack (el1, el2){
  Browser.msgBox('Data sent');
  return "el1 : " + el1 + " - el2: " + el2;
}

相关问题