我正在尝试使用GoogleApps Scripting将一些变量推送到下拉列表中。遇到"格式错误的 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>
与其在块内连接字符串,不如编写 html 并在需要时输出相关字符串。
<select>
<? for (var i = 0; i < data; i++) { ?>
<option value="<?= data[i].name ?>"> <?=data[i].name?></option>
<? } ?>
</select>
请注意,这仍然可能会给您带来意外的结果,具体取决于您的 data[i].name 值包含的内容(如果它包含引号,则为 EG(,因此您可能希望在value=""
属性中对其进行转义。
你这样做的方式不会削减它。使用 google.script.run:
google.script.run 是一个异步客户端 JavaScript API,可在 HTML 服务页面中使用,可以调用服务器端应用脚本函数。要通过客户端代码与 Google 文档、表格或表单中的对话框或边栏进行交互,请使用 google.script.host。有关详细信息,请参阅与 HTML 服务中的服务器功能通信的指南。
示例代码段:
法典。一般事务人员
function doGet() {
return HtmlService.createHtmlOutputFromFile('Index');
}
function doSomething() {
Logger.log('I was called!');
}
然后在您的索引上
.HTML<!DOCTYPE html>
<html>
<head>
<base target="_top">
<script>
google.script.run.doSomething();
</script>
</head>
<body>
</body>
</html>