Javascript 在GoogleApps脚本中将变量推送到下拉列表中
我试图使用GoogleApps脚本将一些变量推到下拉列表中。遇到“格式错误的HTML内容”错误。这肯定与我如何编写“option value=”有关,但我无法理解。 谢谢你的帮助Javascript 在GoogleApps脚本中将变量推送到下拉列表中,javascript,html,google-apps-script,google-apps-script-editor,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) ?>
<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>
你这样做是不会成功的。使用:
google.script.run是一个异步客户端JavaScript API,可在HTML服务页面中使用,可以调用服务器端应用程序脚本函数。要通过客户端代码与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>
google.script.run.doSomething();
为什么要在模板中执行此操作?使用页面加载处理程序与google.script.run
结合使用。谷歌的HtmlService
通信指南中有这样的例子。这样做意味着您可以非常轻松地根据新数据更新此选项列表,而无需刷新页面?它似乎仍然不起作用,但我确信我做错了什么。函数createDropdown(courses){var div=document.getElementById('output');div.innerHTML=courses;}google.script.run.withSuccessHandler(createDropdown.getCourses();是的,类似于:)可能您只想在页面初始加载后调用异步加载脚本,如下所示:可能在本例中,您希望显示OP的即时有用性,例如,使用成功处理程序更改某些客户端HTML。也许客户端代码以“我向服务器挥手致意”开头,当页面完成加载时,它会被更改为包含“服务器函数说你好”。当我引用数据[I].name时,它只会将确切的字符串放在下拉列表中。我实际上如何编写变量?我不确定我是否理解,我需要查看代码。请注意,这种生成下拉列表的方法非常有效,我已经用这种方法做过很多次了。google.script.run方法也是一种很好的方法。