如何简单地将变量推送到 Html 服务模板 AS Html

How To Simply Push A Variable To An HtmlService Template AS Html

我正在使用:

var template = HtmlService.createTemplateFromFile("MyForm.html");

其中包含一个变量:

<?= defaultInnerHtml ?>

我正在尝试为这个变量分配另一个 HTML 文件的内容:

template.defaultInnerHtml
    = HtmlService.createHtmlOutputFromFile(
        "MyInnerHtml.html").getContent();

但是 MyInnerHtml.html 的内容被编码:尖括号被替换为实体等。我只是想在 MyForm.html 文件中再填充一些 Html 然后再提供返回。

我看不出如何只显示原始内容来代替模板中的变量。

有什么帮助吗?

要禁用特殊字符的这种上下文转义,请更改您的模板,使其像这样嵌入变量值:

<?!= defaultInnerHtml ?>

注意感叹号。这指定了强制打印,它指示模板引擎逐字嵌入变量的内容。

来自Google's documentation

Contextual escaping is important if your script allows untrusted user input. By contrast, you’ll need to force-print if your scriptlet’s output intentionally contains HTML or scripts that you want to insert exactly as specified.