在GoogleApps脚本中将变量推送到下拉列表

时间:2018-08-09 20:08:42

标签: javascript html google-apps-script google-apps-script-editor

我正在尝试使用GoogleApps脚本将某些变量推入下拉列表。遇到“格式错误的HTML内容”错误。绝对与我如何编写“ option value =”有关,但我无法弄清楚。 谢谢您的帮助!

<html>
   <head>
      <base target="_top">
   </head>
   <body>
      <select>
      <? Logger.log("data "+data) ?>
      <? for (var i = 0; i < data; i++) {  ?>
      <?= "<option value=\"" + data[i].name + "\">" + data[i].name + "</option>" ?>
      <? } ?>
      </select>
   </body>
</html>

2 个答案:

答案 0 :(得分:0)

编写字符串并在需要的地方输出相关的字符串,而不是将字符串连接到块内。

  <select>
  <? for (var i = 0; i < data; i++) {  ?>
     <option value="<?= data[i].name ?>"> <?=data[i].name?></option>
  <? } ?>
  </select>

请注意,根据数据[i] .name值所包含的内容(如果包含引号,则为EG),这仍然可能会给您带来意想不到的结果,因此您可能希望将其转义到value=""属性中。

答案 1 :(得分:0)

您做的方式不会削减它。使用google.script.run

google.script.run是HTML服务页面中可用的异步客户端JavaScript API,可以调用服务器端Apps脚本函数。要通过客户端代码与Google文档,表格或表单中的对话框或边栏进行交互,请使用google.script.host。有关更多信息,请参见与HTML服务中的服务器功能进行通信的指南。

示例代码段

CODE.GS

function doGet() {
  return HtmlService.createHtmlOutputFromFile('Index');
}

function doSomething() {
  Logger.log('I was called!');
}

然后在您的 INDEX.HTML

<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
    <script>
      google.script.run.doSomething();
    </script>
  </head>
  <body>
  </body>
</html>