Bra*_*don 2 html google-apps google-apps-script
我使用下面的代码将变量插入到 HTML 文件中,该变量以纯文本形式插入,并且不在我的变量中注册代码。
function sendEmail(){
var htmlBody = HtmlService.createTemplateFromFile('emailFormat');
var variableOne = "text";
htmlBody.example = '<p>' + variableOne + '</p>';
var email_html = htmlBody.evaluate().getContent();
MailApp.sendEmail({
to: "email@email.com",
subject: "subject",
htmlBody: email_html
});
}
Run Code Online (Sandbox Code Playgroud)
上面的代码使我<?= example ?>在文件“emailFormat”中放置的任何位置都成为"<p>text</p>". 问题是它没有将其显示为"<p>text</p>"完全显示的“文本”。如何让它显示注册<p>'s为代码?
标签<?= ?>将对输出进行转义<?= <p> ?>,因此将“打印”字符串<p>而不是段落标签。
您可以使用<?!= ?>不转义输出。这些对于将额外的 HTML 和内联 JavaScript、CSS 文件包含到模板中非常有用。使用感叹号应该可以解决您的问题。
但就您而言,尝试将<p>标签放在标签之外<?= =?>,如下所示:
<p><?= example ?></p>
Run Code Online (Sandbox Code Playgroud)
这是典型的做法。或者,如果您需要切换标签,您可以使用该<?!=选项,但这会将 HTML 放入您的 JavaScript 中...这是一个主观选择,但您也可以通过使用<? ?>如下标签来控制选项:
代码.gs
// html refers to a template
html.type = "p";
html.content = "some paragraph content!";
Run Code Online (Sandbox Code Playgroud)
模板.html
<? if (type === "p") { ?>
<p> <?= content ?> </p>
<? } ?>
Run Code Online (Sandbox Code Playgroud)