Показать массив из файла скрипта приложения в файле html - PullRequest
1 голос
/ 06 января 2020

У меня есть массив черновиков электронной почты, которые я получил в скрипте приложений. Я хочу показать их в файле html в элементе select, но он отображается пустым, когда я его запускаю. Код ниже

code.gs

function doGet(e) {
  return HtmlService.createHtmlOutput("index");
}


function doSomething() {

  var drafts = GmailApp.getDrafts();
  var drafty = [];
  for(var i = 0; i < drafts.length; i++){
    drafty.push(drafts[i].getMessage().getSubject());
  }
  Logger.log(drafty);
  return drafty;

  var select = document.getElementById("select"),
      arr = drafty;

  for(var i = 0; i < arr.length; i++)
  {
       var option = document.createElement("OPTION"),
          txt = document.createTextNode(arr[i]);

        option.setAttribute("value", arr[i]);
        option.appendChild(txt);
        document.getElementById("select").appendChild(option);
  }

index. html

<!DOCTYPE html>
<html>
  <head>
    <script>
      google.script.run.doSomething();
    </script>
  </head>
  <body>
    <select id="select" class="addon-select addon-form-input"></select>
  </body>

1 Ответ

2 голосов
/ 06 января 2020

Примерно так: gs:

function doSomething() {
  var drafts=GmailApp.getDrafts();
  var drafty=[];
  for(var i=0;i<drafts.length;i++){
    drafty.push(drafts[i].getMessage().getSubject());
  }
  Logger.log(drafty);
  return drafty;
}

html:

<!DOCTYPE html>
<html>
  <head>
    <script>
      google.script.run
      .withSuccessHandler(function(A){
        var id='select';
        var select = document.getElementById(id);
        select.options.length = 0; 
        for(var i=0;i<A.length;i++) {
          select.options[i] = new Option(A[i],A[i]);
        }
      })
      .doSomething();
    </script>
  </head>
  <body>
    <select id="select"></select>
  </body>
</html>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...