【问题标题】:How to insert HTML code into HTML file from a .gs using Google Apps Script如何使用 Google Apps 脚本将 HTML 代码从 .gs 插入 HTML 文件
【发布时间】:2019-08-15 16:37:13
【问题描述】:

我使用下面的代码插入 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
  });
}

上面的代码使我在文件“emailFormat”中放置&lt;?= example ?&gt; 的任何位置变为"&lt;p&gt;text&lt;/p&gt;"。问题是它没有将其显示为“文本”,而是完全显示"&lt;p&gt;text&lt;/p&gt;"。如何让它显示将&lt;p&gt;'s 注册为代码?

【问题讨论】:

  • 显示你的html代码

标签: html google-apps-script google-apps


【解决方案1】:

标签&lt;?= ?&gt;escape 输出,因此&lt;?= &lt;p&gt; ?&gt; 将“打印”字符串&lt;p&gt; 而不是段落标签。

您可以使用&lt;?!= ?&gt;转义输出。这些对于including 额外的 HTML 和内联 JavaScript、CSS 文件到您的模板很有用。使用感叹号应该可以解决您的问题。

但在您的情况下,请尝试将 &lt;p&gt; 标签放在 &lt;?= =?&gt; 标签之外,如下所示:

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

这是典型的做法。或者,如果您需要切换标签,您可以使用 &lt;?!= 选项,但这会将 HTML 放入您的 JavaScript 中......这是一个主观的选择,但您也可以使用 &lt;? ?&gt; 标签来控制选项,如下所示:

代码.gs

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

模板.html

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

【讨论】:

    【解决方案2】:

    试试这个:

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

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

    【讨论】:

    • Scriptlet 确实会加载,我将它用于其他只是文本的变量。
    猜你喜欢
    • 1970-01-01
    • 2023-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-01
    • 2023-04-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多