Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script 将值返回到电子表格对话框_Google Apps Script_Google Sheets - Fatal编程技术网

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

Google apps script 将值返回到电子表格对话框,google-apps-script,google-sheets,Google Apps Script,Google Sheets,目标: 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")

目标:

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"
}
<script>
   var str = google.script.run.returnVal()
   alert(str);                             // Alert box says undefined
</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"
}
<script>
   var str = google.script.run.returnVal()
   alert(str);                             // Alert box says undefined
</script> 
脚本返回“未定义”

应用程序脚本:

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"
}
<script>
   var str = google.script.run.returnVal()
   alert(str);                             // Alert box says undefined
</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"
}
<script>
   var str = google.script.run.returnVal()
   alert(str);                             // Alert box says undefined
</script> 

var str=google.script.run.returnVal()
警惕(str);//警报框显示未定义

因为
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> 

//.returnVal()返回时要调用的函数
var onSuccess=函数(str){
警报(str);
}
//使用.withSuccessHandler()设置回调函数
var str=google.script.run.withSuccessHandler(onSuccess.returnVal())