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

Updating html of a Google Site's page with multiple blocks using Google Apps Script

我在我的 Google 站点上使用 "Web Page" 模板创建了一个页面,我想使用 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);

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

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

您还可以使用 Apps 脚本创建一个独立的 Web 应用程序,然后将 Apps 脚本小工具放入站点页面。您可以拥有多个 Apps 脚本小工具。我不知道是什么触发了 HTML 的变化。出于所有实际目的,独立应用程序脚本 HTML 服务应用程序基本上与网站相同。您没有漂亮、易于理解的 URL,但它不会显示在 Apps 脚本小工具中。 Google 将显示一条消息:"This content was not created by Google"

我认为您无法将 HTML 注入多列。您可以创建其中包含多列的 HTML,然后将 HTML 添加到其中的一列。因此,您将在 HTML.

中创建自己的列