虽然HtmlService允许您提供HTML,但它不是“托管”页面,并且您不能直接通过URL访问Apps脚本项目中的各种html文件。而是,您的Web应用程序在发布时将具有URL,这是您唯一的URL。
您可以通过这种方式为脚本提供单独的页面,并使它们的行为类似于html文件链接。
该
doGet()函数在调用时会传递一个事件,我们可以利用该事件来指示我们要服务的页面。如果我们的Web应用程序ID为
<scriptURL>,则URL以及请求特定页面的查询字符串将如下所示:
https://script.google.com/macros/s/<scriptURL>/dev?page=my1
使用模板化的HTML,我们可以动态生成必要的URL +
querystring。在我们的中
doGet(),我们只需要解析querystring即可确定要投放的页面。
这是脚本,其中有两个示例页面,其中包含在它们之间切换的按钮。
代码
function getscriptUrl() { var url = scriptApp.getService().getUrl(); return url;}function doGet(e) { Logger.log( Utilities.jsonStringify(e) ); if (!e.parameter.page) { // When no specific page requested, return "home page" return HtmlService.createTemplateFromFile('my1').evaluate(); } // else, use page parameter to pick an html file from the script return HtmlService.createTemplateFromFile(e.parameter['page']).evaluate();}my1.html
<html> <body> <h1>Source = my1.html</h1> <?var url = getscriptUrl();?><a href='<?=url?>?page=my2'> <input type='button' name='button' value='my2.html'></a> </body></html>
my2.html
<html> <body> <h1>Source = my2.html</h1> <?var url = getscriptUrl();?><a href='<?=url?>?page=my1'> <input type='button' name='button' value='my1.html'></a> </body></html>



