【问题标题】:How can you add a link to a google site via a Google Apps Script?如何通过 Google Apps 脚本添加指向 google 站点的链接?
【发布时间】:2013-01-18 18:09:31
【问题描述】:

我一直在编写一些脚本,通过动态创建页面来使我的 Google 网站更易于管理。我希望能够创建一个包含指向这些页面的链接的目录。

所以我在想……

var page = site.getChildByName("NEW URL");
var link = [page.getUrl()];
page = site.getChildByName("URL TO DIRECTORY").addListItem(link);

...使用谷歌应用程序脚本。到目前为止还没有对此进行过彻底的测试,但它无法让链接在列表中起作用。我希望将页面模板保留为普通网页。

如果我走那条路,编辑 html 是唯一的选择吗?希望有更简单的方法。

任何想法都会很棒。谢谢!

【问题讨论】:

  • 我添加了一个滚动面板来处理列表的可变高度...

标签: google-apps-script google-sites


【解决方案1】:

这是一个小测试,显示您网站中所有页面的列表

function doGet() {
  var app=UiApp.createApplication().setTitle("Directory of this site")
  var mainPanel = app.createAbsolutePanel().setStyleAttributes({background:'beige',padding:'20px'});
  var scroll = app.createScrollPanel().setPixelSize(450,300);
  var site = SitesApp.getSiteByUrl('https://sites.google.com/site/appsscriptexperiments/')
  var pages = site.getAllDescendants()
  var grid = app.createGrid(pages.length,2).setWidth(400)
    for(n=0;n<pages.length;++n){
    grid.setText(n, 0, pages[n].getName()).setWidget(n, 1, app.createAnchor('open', pages[n].getUrl()))
    }
    app.add(mainPanel.add(scroll.add(grid)))
    return app
}

我想你知道如何在你的网站页面中使用它,但只是为了其他人的信息:你必须去 管理网站 > 脚本应用程序 > 创建一个新脚本 > 保存版本 > 部署 经过适当的授权,最后返回您的页面并将其作为小工具插入(最好有边框和 450x300 大小,个人视角 ^^)。您还可以使用其部署 url 将其用作独立的 web 应用程序。

【讨论】:

  • ahhhh 好的,所以我可以修改这个来获取我的 dir 页面的后代。唯一让我担心的是,我正在与另一个 ui 实例结合运行页面构建脚本,所以我将不得不分离这个脚本,以便在新页面进入时保持“网格”更新。谢谢!这将是一个巨大的帮助!
  • 您也可以将此 sn-p 集成到另一个脚本中,只要在创建任何新页面后出现 getAllDescendants 语句即可。好吧,我没有在那种情况下测试它,但它看起来很合乎逻辑(我们正在做的事情合乎逻辑吗?^^)
  • 所以我在滚动功能上遇到了一点问题。
  • 当我将 var site = SitesApp.getSiteByUrl 替换为 var site = SitesApp.getPageByUrl 以使其成为我整个站点的子页面的目录时。我失去了 ScrollPanel 的滚动功能。
  • 您确定列表中有足够的行可以滚动浏览吗? (我知道这是一个愚蠢的问题,但谁知道呢?:-) 我会站在我这边测试,看看会发生什么。
猜你喜欢
  • 1970-01-01
  • 2019-09-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-25
相关资源
最近更新 更多