簡體   English   中英

Google表格應用腳本HTML的onload無法正常工作

[英]Google Sheets App Script Html onload not working

我正在使用Google工作表,並且正在創建一個文檔,該文檔可以吸引不在辦公室的員工。 我有一個菜單選項來刪除員工數據,它打開了我有HTML表單( 項目的圖像 )的側邊欄。 我正在嘗試使其生成列表中當前雇員的下拉列表。

我已經開發了用於提取所需數據的代碼:

function removeAnyone() {
  var html = HtmlService.createHtmlOutputFromFile('RemoveAnyone');
  SpreadsheetApp.getUi()
    .showSidebar(html);
}

function getList() {
  var headerRows = 1;
  var sheet = SpreadsheetApp.getActive().getSheetByName("Data");
  var range = sheet.getRange(headerRows + 1, 1, sheet.getMaxRows() - headerRows, 1);
  var arrayValues = range.getValues();
  return arrayValues;
}

現在我們移到我的html,在這里我只是嘗試使用標題中的for循環來加載下拉列表:

<!DOCTYPE html>
<html>

<head>
  <base target="_top">
  <script>
    function addOption_list() {

     document.getElementById("output").innerHTML = "test";

    var options = google.script.run.getList();

    for (var i = 0; i < options.length; ++i;) {
      var optn = document.createElement("OPTION");
      optn.text = options[i];
      optn.value = options[i];
      document.myForm.selectEmployee.options.add(optn);

      }
    }
  </script>
</head>

<body onload="addOption_list()">
  <form id="myForm" onsubmit="submitForm(this)">
    <select id="selectEmployee">
      <option>Choose an employee</option>
     </select>
  </form>
  <div id="output"></div>
</body>

</html>

我在主體中添加了一個div,並讓函數在開始時將值更改為“ test”,這只是檢查並查看該函數是否甚至被調用,看起來好像不是。

我也嘗試使用window.onload(如下所示),但是那也沒讓我到任何地方。

window.onload = function {

     document.getElementById("output").innerHTML = "test";

    var options = google.script.run.getList();

    for (var i = 0; i < options.length; ++i;) {
      var optn = document.createElement("OPTION");
      optn.text = options[i];
      optn.value = options[i];
      document.myForm.selectEmployee.options.add(optn);

      }
    }

您能給我的任何指導將不勝感激!

google.script.run不返回值。 如果要從GAS返回值,請使用withSuccessHandler 並且getValues()檢索的數據是二維數組。 那么如何修改呢?

修改后的腳本:

<!DOCTYPE html>
<html>

<head>
  <base target="_top">
  <script>
    window.onload = function() {
      google.script.run.withSuccessHandler(addOption_list).getList();
    }
    function addOption_list(options) {
      document.getElementById("output").innerHTML = "test";
      var select = document.getElementById('selectEmployee');
      for ( var i in options) {
        var optn = document.createElement('option');
        optn.value = options[i][0];
        optn.text = options[i][0];
        select.appendChild(optn);
      }
    }
  </script>
</head>

<body>
  <form id="myForm" onsubmit="submitForm(this)">
    <select id="selectEmployee">
      <option>Choose an employee</option>
     </select>
  </form>
  <div id="output"></div>
</body>

</html>

參考:

如果我誤解了您的問題,對不起。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM