我为谷歌网站创建了一个简单的随机引用生成器。报价存储在电子表格中,并通过谷歌应用程序脚本包含在我的网站页面中。 具体来说,我有一个脚本使用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标记;似乎工作。
我做错了什么?
非常感谢你的帮助。
弗朗西斯
答案 0 :(得分:2)
您使用的scriplets是打印scriptlet(<?= ... ?>
),它只会打印上下文中的值。
要显示值和HTML标记,您需要使用“ Force-printing scriptlets ”(<?!= ... ?>
);
<p><?!=pageDetailsObj.text_tag ?></p>