Google Apps脚本删除警告横幅

时间:2015-11-10 16:52:33

标签: google-apps-script google-sites

我正在使用Google Apps脚本在我的Google网站上放置GeoChart。当我没有登录我的谷歌帐户时查看页面在顶部显示一个灰色横幅,状态为:"此应用程序由其他用户创建,而不是由Google创建。"见here

screenshot

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

中使用的HtmlOutput对象
function doGet() {
return HtmlService.createHtmlOutputFromFile('prate').setSandboxMode(HtmlService.SandboxMode.IFRAME);
}

5 个答案:

答案 0 :(得分:8)

对于任何关心的人,我通过在iframe中嵌入包含此问题的google页面并使用负边距来解决这个问题。不能看到酒吧。只要其他人可以使用建议

就把它扔出去

答案 1 :(得分: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控制台中显示的错误:

      

    未捕获的SecurityError:阻止具有原点“https://n-gtoiuxrqufcpexrnkeysovsfb7ibnjwczjyz6ii-script.googleusercontent.com”的帧访问具有原点“https://script.google.com”的帧。协议,域和端口必须匹配。

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

    < / LI>

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

答案 2 :(得分:1)

如果您使用IFRAME标签将Google Script Web应用程序嵌入另一个网站,则警告横幅将被隐藏。确保将页面的X-Frame-Options标头设置为XFrameOptionsMode.ALLOWALL,这将允许任何网站对Web应用程序页面进行框架化。

请参见docs

答案 3 :(得分:0)

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

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

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

点击保存。它将立即应用。

答案 4 :(得分:0)

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