繁体   English   中英

如何使用 Google Apps Script 从 .gs 将 HTML 代码插入到 HTML 文件中

[英]How to insert HTML code into HTML file from a .gs using 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
  });
}

上面的代码使我把<?= example ?>放在文件 'emailFormat' 中的任何地方都变成了"<p>text</p>" 问题是它不会将其显示为“文本”,而是完全显示"<p>text</p>" 如何让它显示将<p>'s注册为代码?

标签<?= ?>转义输出,因此<?= <p> ?>将“打印”字符串<p>而不是段落标签。

您可以使用<?!= ?>转义输出。 这些对于在模板中包含额外的 HTML 和内联 JavaScript、CSS 文件非常有用。 使用感叹号应该可以解决您的问题。

但在您的情况下,尝试将<p>标签放在<?= =?>标签之外,如下所示:

<p><?= example ?></p>

这是典型的做法。 或者,如果您需要切换标签,您可以使用<?!=选项,但这会将 HTML 放入您的 JavaScript 中……这是一个主观选择,但您也可以使用<? ?> <? ?>标签:

代码.gs

// html refers to a template
html.type = "p";
html.content = "some paragraph content!";

模板.html

<? if (type === "p") { ?>
<p> <?= content ?> </p>
<? } ?>

尝试这个:

function sendEmail(){
  var v1="Hello World";
  var html='<p>' + v1 + '</p>';
  MailApp.sendEmail({to: "email@email.com", subject: "Email Test", htmlBody: html});

}

除了可能通过 Google Apps Script Advanced API 之外,我们不会真正从 gs 文件脚本将 html 加载到 html 文件中。 然而,我们可以使用google.script.run将 html 直接加载到浏览器的文档对象模型中,然后只需通过 id 获取元素并通过 Javascript 加载它的文本或 innerHTML。 我认为即使是 scriplets 实际上也不会将它加载到 html 文件中,但我不确定这一点。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM