我正在对自己进行从 Cold Fusion 到 Google Apps Scripts 的交叉训练。一切进展顺利,直到我尝试调用嵌套在另一个相同函数中的 createTemplateFromFile 函数。我是在尝试做不可能的事情还是可以完成。
我的目标是打电话给:-
htmlhead.html - 这只包含静态 html
bodystart.html - 这只包含静态 html
mainmenu.html - 这需要用户上下文和获取/发布值以显示所需级别的菜单
contentswitcher.html - 这需要点击获取/发布值并响应所需的数据或表单 html 代码
pagefooter.html - 这会响应页面调用日期/时间和运行所需的时间
bodyandhtmlend.html - 这只包含静态 html
每个文件都可以包含小脚本,这些小脚本可以自己运行,也可以在 Code.gs 文件之类的文件中调用函数,因此需要对它们进行评估。我可以成功地编写和测试其中任何一个。到目前为止,我可以评估它们并自行输出它们,但我无法将它们加入/连接到一个输出页面中。我在说明或问答中找不到任何暗示它甚至是一个好/可能的想法的内容。我看错地方了吗?指向不同方法的指针会像任何东西一样受欢迎。
非常感谢。
您可以将此函数复制到您的 .gs 文件中:
function include(yourHtmlFile) {
return HtmlService.createHtmlOutputFromFile(yourHtmlFile)
.getContent();
}
...并创建包含模板的单个 index.html 文件。现在,您可以将模板放入 index.html
<!-- This goes into <head> -->
<div>
<?!= include('htmlhead'); ?>
</div>
<!-- This goes into <body> -->
<div>
<?!= include('bodystart'); ?>
</div>
<div>
<?!= include('mainmenu'); ?>
</div>
<div>
<?!= include('contentswitcher'); ?>
</div>
<div>
<?!= include('pagefooter'); ?>
</div>
<div>
<?!= include('bodyandhtmlend'); ?>
</div>
您也可以单独导入一些JavaScript代码,但将其保存在带有常规标签的html文件中(而不是.gs文件中)。