为什么某些 html 标签似乎无法与 google 应用程序脚本中的 HtmlService 一起使用?
why some html tags do not seem to work with HtmlService in google apps script?
我为我的 google 站点创建了一个简单的随机报价生成器。报价存储在电子表格中,并通过 google 应用程序脚本包含在我网站的页面中。
具体来说,我有一个使用 HtmlService "in bundle" 和 html 页面的脚本。
总的来说,代码似乎工作正常。但是我似乎无法使用一些基本的 html 标签,例如 < p > 或 < b >。
我有两个可能的问题:
1) 我正在传递纯文本 (text1),并将其包含在 html 文档的 < b >> 标记中。但是文字不是粗体。
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));
}
脚本 (formattedText.html) 引用的 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>
第二行中的 < b > 标记和 "text_tag" 中的 html 标记似乎都不起作用。
我做错了什么?
非常感谢您的帮助。
弗朗切斯科
您使用的 scriplet 正在打印 scriptlet (<?= ... ?>
) 它会按原样打印值,因为它会进行上下文转义。
为了显示值以及 HTML 标签,您需要使用“Force-printing scriptlets”(<?!= ... ?>
);
<p><?!=pageDetailsObj.text_tag ?></p>
我为我的 google 站点创建了一个简单的随机报价生成器。报价存储在电子表格中,并通过 google 应用程序脚本包含在我网站的页面中。 具体来说,我有一个使用 HtmlService "in bundle" 和 html 页面的脚本。
总的来说,代码似乎工作正常。但是我似乎无法使用一些基本的 html 标签,例如 < p > 或 < b >。
我有两个可能的问题:
1) 我正在传递纯文本 (text1),并将其包含在 html 文档的 < b >> 标记中。但是文字不是粗体。
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));
}
脚本 (formattedText.html) 引用的 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>
第二行中的 < b > 标记和 "text_tag" 中的 html 标记似乎都不起作用。
我做错了什么?
非常感谢您的帮助。
弗朗切斯科
您使用的 scriplet 正在打印 scriptlet (<?= ... ?>
) 它会按原样打印值,因为它会进行上下文转义。
为了显示值以及 HTML 标签,您需要使用“Force-printing scriptlets”(<?!= ... ?>
);
<p><?!=pageDetailsObj.text_tag ?></p>