[英]use value from input field in html dialog box to var in code.gs using Google Apps Script
[英]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.