0

ゴール:

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> 
4

1 に答える 1

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> 
于 2013-05-25T14:28:52.840 に答える