我正在尝试使用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>
答案 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>