我正在尝试使用单个GAS项目,通过根据用户点击的内容提供不同的HTML页面来更改其UI。我无法弄清楚如何从脚本中提供不同的HTML,替换当前的浏览器页面并保留状态。任何帮助赞赏。谢谢。
答案 0 :(得分:0)
使用google.script.run,您可以从html页面在服务器上运行任何脚本。通过communicating with the server,您可以访问PropertiesService,这使您能够在页面之间存储信息。我个人喜欢HTML Service createHtmlOutput(html)因为我可以编辑html而无需编辑单独的页面。
我决定在这里回答您的问题,以便我可以使用代码部分。
<强>问题:强>
我实际上是想避免操纵HTML并提供服务 存储在项目中的完全不同的HTML文件。我该怎么做 页面再次调用脚本并用新的替换自己 内容?
我们猜测完全替换页面并不是您想要的,因为用户将遭受页面刷新。但你可以像这样创建div:
<style>#R01{display:none;}</style>
<div class="replaceable" id="R01"></div>
如果您将所有可替换内容放入div中,那么您可以通过以下呼叫从服务器请求内容:
google.script.run
.withSuccessHandler(updateConversation)
.withFailureHandler(showStatus)
.getConversation();
并将新内容放入相应的div中,然后使用另一对更改css并关闭旧内容并打开新内容。从而避免页面刷新。不要忘记先将旧数据保存到PropertiesService中。所以我不认为改变整个页面是可行的,但我可能是错的。我认为只是更改一些内部内容将避免需要总页面刷新。如果您想更改图像,可以使用CSS Sprites
避免再次下载答案 1 :(得分:0)
我使用两个选项:
我有效地使用了这两者的组合。基本上我有一个div,它有我的&#34;菜单&#34;和div是要替换的部分。我的菜单发生了变化,然后数据被发送回服务器以获取动态主体。返回HTML然后我replace using innerHTML。
在相同的代码中,我提供pass menu values via the published URL的能力。这允许我直接转到某些值,如果我选择了我有一个Google网站,我们将脚本嵌入到页面中,菜单选项可能特定于该页面。它允许我们使用iFrame显示Web应用程序并直接进入相关界面。