Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/454.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
Javascript 在html文件中显示应用程序脚本文件中的数组_Javascript_Html_Google Apps Script - Fatal编程技术网

Javascript 在html文件中显示应用程序脚本文件中的数组

Javascript 在html文件中显示应用程序脚本文件中的数组,javascript,html,google-apps-script,Javascript,Html,Google Apps Script,我在应用程序脚本中获得了一系列电子邮件草稿。我想在一个html文件中的select元素中显示它们,但当我运行它时,它会显示为空白。代码如下 代码.gs function doGet(e) { return HtmlService.createHtmlOutput("index"); } function doSomething() { var drafts = GmailApp.getDrafts(); var drafty = []; for(var i = 0; i &

我在应用程序脚本中获得了一系列电子邮件草稿。我想在一个html文件中的select元素中显示它们,但当我运行它时,它会显示为空白。代码如下

代码.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);
  }
函数doGet(e){
返回HtmlService.createHtmlOutput(“索引”);
}
函数doSomething(){
var drafts=GmailApp.getDrafts();
var drafty=[];
对于(变量i=0;i
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>

google.script.run.doSomething();
类似这样的内容: 一般事务:

函数doSomething(){
var drafts=GmailApp.getDrafts();
var drafty=[];

对于(var i=0;iYou可能希望将
onSelect
更改为
onChange
。您目前拥有用于在服务器上设置select标记的JavaScript。它在那里不起作用。谢谢@Cooper-您能建议如何更改它吗?将其移动到客户端。@Cooper如何做到这一点?您的意思是将gs添加到html中吗?如果是,我尝试了这一点。)完成后,GmailApp函数就不起作用了
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;
}
<!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>