0

我正在尝试使用 GoogleApps 脚本将一些变量推送到下拉列表中。遇到“格式错误的 HTML 内容”错误。这肯定与我如何编写“选项值 =”有关,但我无法弄清楚。感谢您的任何帮助!

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

2 回答 2

0

不要在块内加入字符串,而是编写 html 并在需要的地方输出相关字符串。

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

请注意,这仍然可能会给您带来意想不到的结果,具体取决于您的 data[i].name 值包含的内容(例如,如果它包含引号),因此您可能希望在value=""属性内对其进行转义。

于 2018-08-09T21:29:32.307 回答
0

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

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

示例片段:

代码.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>
于 2018-08-10T13:20:13.230 回答