【问题标题】:Google Apps Script remove warning bannerGoogle Apps 脚本删除警告横幅
【发布时间】:2017-09-15 07:22:49
【问题描述】:

我正在使用 Google Apps 脚本在我的 Google 站点上放置 GeoChart。当我没有登录我的谷歌帐户时查看页面会在顶部显示一个灰色横幅,上面写着:“这个应用程序是由另一个用户创建的,而不是由谷歌创建的。”看到它here

有没有办法删除此横幅或将其移动到页面底部以使其看起来更好?我发现了一个简短的讨论 here(见第四条评论),但这不适用于我在 doGet 中使用的 HtmlOutput 对象

function doGet() {
return HtmlService.createHtmlOutputFromFile('prate').setSandboxMode(HtmlService.SandboxMode.IFRAME);
}

【问题讨论】:

  • 在 FireFox 开发工具中,我可以设置 .warning-barvisibility: none,然后灰色条消失。这或多或少是 2011 年 UiService 解决方法所做的,因此可以使用自定义 CSS 来控制它。

标签: google-apps-script google-sites


【解决方案1】:

如果您使用 IFRAME 标记将 Google Script 网络应用程序嵌入到另一个网站,则警告横幅将被隐藏。确保您将页面的 X-Frame-Options 标头设置为 XFrameOptionsMode.ALLOWALL,它将允许任何网站 iframe 网络应用页面。

docs

【讨论】:

    【解决方案2】:

    如果您将其嵌入google site,则横幅将不会显示。

    【讨论】:

      【解决方案3】:

      为此,我已成功使用 Chrome 扩展程序 Custom JavaScript for websites。它允许您在任何域上运行任何 JavaScript。

      要隐藏 Google 警告横幅,只需在自定义 JavaScript 窗口中输入以下代码:

      document.getElementById('warning').style.display = 'none';
      

      然后点击保存。它会立即应用。

      【讨论】:

        【解决方案4】:

        对于任何关心的人,我通过在 iframe 中嵌入一个包含此问题的谷歌页面并使用负边距来解决这个问题。看不到酒吧。只是把它扔在那里,以防其他人可以使用这个建议

        【讨论】:

        • 你知道这在 2019 年是否仍然对你有用吗?
        【解决方案5】:

        似乎可以从使用 HtmlService 的 WebApp 中抑制该警告的两个选项是:

        1. 自定义 CSS,例如在 Stylesheet.html 中(假设您从 WebApp 脚本模板开始)。

          .warning-bar {
            visibility: hidden;
          }
          

          我试过这个,发现它对最终显示没有影响。如果在 iframe 的 HTML 中有一个带有 class="warning-bar" 的元素,则 该元素 将被隐藏。同样,如果我们尝试通过 id 修改警告栏,#warning;对 iframe 之外的元素没有影响。

          没有对父元素的 CSS 支持,所以这是一条死胡同。

        2. 使用客户端 JavaScript 来操作 iframe 之外的元素。通过将代码添加到 JavaScript.html(再次假设 WebApp 脚本模板),我们可以尝试更改文档元素。

          使用 jQuery:

          $('.warning-bar:first',parent.document).hide();
          

          使用纯 JavaScript:

          top.getElementById('warning').style.display = 'none';
          

          这些都不起作用。 Google 用于托管 Google Apps 脚本的配置会阻止在 iframe 中运行的 JavaScript 访问父页面中的项目。以下是 JavaScript 控制台中显示的错误:

          未捕获的安全错误:阻止了来源为“https://n-gtoiuxrqufcpexrnkeysovsfb7ibnjwczjyz6ii-script.googleusercontent.com”的框架访问来源为“https://script.google.com”的框架。协议、域和端口必须匹配。

          他们强制我们脚本的 iframe 拥有一个与周围文档不同的主机域,从而使单域安全策略能够阻止我们正在尝试执行的确切类型的操作。

        根据您在问题中链接的问题,避免该烦人消息的唯一选择是切换到付费的 Google Apps 域(例如商业或教育)。

        【讨论】:

        • 感谢@Mogsdad 的帮助,不是我希望的答案,但没关系。我只是决定改变我在页面上放置地图的方式,以便横幅只在最顶部显示一次。似乎是目前最好的解决方案。
        • 正如@AmitAgarwal 所指出的,iframe 页面将隐藏横幅,但您必须设置页面的 X-Frame-Options 以允许 iframe。
        猜你喜欢
        • 1970-01-01
        • 2014-11-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-11-12
        • 2016-10-21
        相关资源
        最近更新 更多