如何使用 Google Apps 脚本将 HTML 代码从 .gs 插入 HTML 文件

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为代码?

dwm*_*rin 7

标签<?= ?>将对输出进行转义<?= <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)