使用Google Apps脚本更新包含多个块的Google网站页面的html

时间:2015-03-01 18:02:39

标签: google-apps-script google-sites

我使用"网页"创建了一个页面。我的Google协作平台上的模板,我想使用Google Apps脚本更新页面。我的代码如下所示:

var template = HtmlService.createTemplateFromFile('mytemplate'); // meaning 'mytemplate.html'
var content = template.evaluate().getContent();

var site = SitesApp.getSiteByUrl('https://sites.google.com/site/example/');
var page = site.getChildByName('home');
page.setHtmlContent(content);

如果页面的布局是"一列(简单)",这非常有效。现在我的问题是,如果我选择其他布局之一,如何使用setHtmlContent()更新每个块?实际上,我尝试使用"两列(简单)"布局有2个街区。 setHtmlContent()改变了左栏的html代码并清除了另一列。

编辑:我真正想要做的是创建一个包含小工具的页面,并使用Google Apps脚本更新页面。根据此问题跟踪器https://code.google.com/p/google-apps-script-issues/issues/detail?id=572,看起来我们在使用setHtmlContent()更新此类页面时可能会遇到一些问题。因此,我提出了一个想法,即创建一个多列页面,将小工具放在一列中,并且只使用脚本更新另一列的HTML代码以避免此类问题。

1 个答案:

答案 0 :(得分:1)

您还可以使用Apps脚本创建独立的Web应用程序,然后将Apps脚本小工具放入“站点”页面。您可以拥有多个Apps脚本小工具。我不知道是什么触发了HTML的变化。出于所有实际目的,独立应用程序脚本HTML服务应用程序与网站基本相同。您没有一个好的,可理解的网址,但这不会出现在Apps脚本小工具中。 Google会显示一条消息:"此内容不是由Google"

创建的

我不认为您能够将HTML注入多个列。您可以创建包含多个列的HTML,然后将该HTML添加到一列。因此,您将在HTML中创建自己的列。