【问题标题】:GAS: Debugging HTMLServiceGAS:调试 HTMLService
【发布时间】:2015-01-15 22:57:23
【问题描述】:

我正在尝试使用 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 触发的回调?
回调未启动时怎么办?
我看到有时只需关闭并重新打开文档即可解决问题:是否有更有效的方法来重新加载代码?

【问题讨论】:

  • 每次要测试新代码时都必须刷​​新浏览器选项卡。我从来不需要关闭并重新打开文档来输入新代码。
  • @SandyGood:你确定这一直是规则吗?还是你的个人习惯?如果我每次运行都刷新,那么即使是最简单的脚本也会变成一场噩梦。 PS。在我看来,通过来回切换到 Sheets Home 来关闭/打开比整个刷新要快一些。

标签: google-apps-script google-api google-spreadsheet-api


【解决方案1】:

我发现调试 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;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多