为什么有些html标签似乎不能与谷歌应用程序脚本中的HtmlService一起使用?

时间:2017-10-21 15:03:13

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

我为谷歌网站创建了一个简单的随机引用生成器。报价存储在电子表格中,并通过谷歌应用程序脚本包含在我的网站页面中。 具体来说,我有一个脚本使用HtmlService"在bundle"用html页面。

总的来说,代码似乎工作正常。但是我似乎无法使用一些基本的html标签,例如< p>或者< b>。

我有两个可能的问题:

1)我传递纯文本(text1),并将其包含在< b>< / b> html文档中的标签。但是文字并不粗体。

2)我传递了一些包含html标签的文本(text_tag)。这些在html文件中没有这样解释。

我在下面附上一个mwe。我已经删除了有关从电子表格中检索文本的所有部分。

我使用的Google应用脚本

function doGet(e) {
    var pageDetailsHTML = HtmlService.createTemplateFromFile('formattedText');
    var page = SitesApp.getActivePage()

    var text1 = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.";
    var text_tag = "<p>Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p>" + "Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. ";

    var pageDetailsObj = {
     text1   : text1,
     text_tag: text_tag,
    }
    pageDetailsHTML.e = e;
    pageDetailsHTML.pageDetailsObj = pageDetailsObj;
    return pageDetailsHTML.evaluate()
     .setTitle('Dettagli della pagina');
   Logger.log('e = ' + JSON.stringify(e));
   }

脚本引用的html代码(formattedText.html)是

<!DOCTYPE html>
<html>
 <head>
 <base target="_top">
 <link href="https://fonts.googleapis.com/css?family=Open+Sans" rel="stylesheet">
</head>
 <body style="background-color:#e6f2fe">
  <p><?= pageDetailsObj.text1 ?></p>
  <p><b><?= pageDetailsObj.text1 ?></b></p>
  <p><?= pageDetailsObj.text_tag ?></p>    
 </body>
</html>

&lt;&lt; b>第二行中的标记以及&#34; text_tag&#34;中的html标记;似乎工作。

我做错了什么?

非常感谢你的帮助。

弗朗西斯

1 个答案:

答案 0 :(得分:2)

您使用的scriplets是打印scriptlet(<?= ... ?>),它只会打印上下文中的值。

要显示值和HTML标记,您需要使用“ Force-printing scriptlets ”(<?!= ... ?>);

<p><?!=pageDetailsObj.text_tag ?></p>