将值返回到电子表格对话框

时间:2013-01-19 20:24:58

标签: google-apps-script google-sheets

目标:

将App Script函数中的数据返回到自定义电子表格HTML表单。

问题:

脚本返回“未定义”

应用脚本:

function displaySSUI(e) {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var html = HtmlService.createTemplateFromFile("index.html").evaluate();
  ss.show(html);
  return
}

function returnVal () {
   Logger.log("So far so good")            // Displays in Apps Script Logger
   return "Good"
}
电子表格HTML对话中的

脚本:

<script>
   var str = google.script.run.returnVal()
   alert(str);                             // Alert box says undefined
</script> 

1 个答案:

答案 0 :(得分:1)

因为google.script.run将异步运行,所以它不能立即返回值。这就是str未定义的原因。

您需要创建一个回调函数来访问返回的值:

<script>
  //function to be called when .returnVal() returns
  var onSuccess = function(str) {
    alert(str);
  }

  //use .withSuccessHandler() to set the callback function
  var str = google.script.run.withSuccessHandler(onSuccess).returnVal()
</script>