【问题标题】:Returning Site name that triggered Web App Code?返回触发 Web 应用程序代码的站点名称?
【发布时间】:2018-02-05 16:09:42
【问题描述】:

在经典 Google 协作平台上,我在文件柜页面上有一些 HTML。这是一个运行小工具的按钮。

<div style="text-align:left;display:block">
<a href="https://script.google.com/a/MyDOMAIN/macros/s/AKfycxLblah_mp-Z5DWetc/exec" imageanchor="1" target="_blank"><img alt="Run web app" border="0" height="40" src="https://sites.google.com/a/MyDOMAIN/MySite/Preview%20Btn.png" width="120">
</a>
</div>

我用于小工具的测试代码是:

function doGet() {
  var site = SitesApp.getActiveSite();
  var myactivesite = site.getName();
  Logger.log(myactivesite);
}

当我按下页面上的按钮时,我得到:
TypeError:无法调用 null 的方法“getName”。 (第 3 行,文件“代码”)

如果 getActiveSite 正在返回包含容器的站点,我如何将站点名称返回给将容器添加到站点的脚本?

【问题讨论】:

    标签: google-apps-script google-sites


    【解决方案1】:

    不确定这是否是最好的方法,但我最终在 html 中传递了一个带有小工具链接的参数并修改了 doGet() 代码。

    href="https://script.google.com/a/MyDOMAIN/macros/s/AKfycxLblah_mp-Z5DWetc/exec?Client=Site-Name"
    

    所以我可以切掉“Client=”来获取我输入的站点名称,并且在 javascript 中仍然可以使用 site.getAllDescendants 等。

    function doGet(e) {
      var ActvSite = e.queryString.slice(7);
      var myDomain = 'https://sites.google.com/a/MyDOMAIN/';
      var site = SitesApp.getSiteByUrl(myDomain+ActvSite);
    

    【讨论】:

      猜你喜欢
      • 2015-11-02
      • 2015-02-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多