Google Apps Script返回HTML时脚本未执行的问题
解决模板代码未执行的问题
你遇到的问题很典型——createHtmlOutput()方法只会把传入的字符串当作纯静态HTML输出,完全不会解析其中的<?= ?>模板语法,所以new Date()才会被当成文本原封不动地显示出来。
要让服务器端脚本代码执行,你需要使用Apps Script的模板服务,通过evaluate()方法来处理模板内容,具体修改如下:
function doGet() { // 创建模板实例,传入包含模板语法的字符串 const template = HtmlService.createTemplate('<b>The time is <?= new Date() ?></b>'); // 执行模板中的服务器端代码,生成最终的HTML输出 return template.evaluate(); }
补充说明:
HtmlService.createTemplate()会把传入的内容识别为可执行的模板,里面的<?= ?>标签会被当成服务器端JS代码执行,执行结果会替换掉标签本身。- 如果你的HTML内容比较复杂,推荐把内容放在单独的HTML文件中,然后用
HtmlService.createTemplateFromFile('文件名')来加载模板,再调用evaluate()生成输出,代码结构会更清晰。
内容的提问来源于stack exchange,提问作者Ergun
相关产品推荐
相关产品推荐

