Google Apps脚本删除警告横幅

Chr*_*aun 3 google-sites google-apps-script

我正在使用Google Apps脚本在我的Google网站上放置GeoChart.当我未登录到我的Google帐户时查看该页面会在顶部显示一个灰色横幅,其中包含以下状态:"此应用程序是由其他用户创建的,而不是由Google创建的." 在这里看到它.

截图

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

function doGet() {
return HtmlService.createHtmlOutputFromFile('prate').setSandboxMode(HtmlService.SandboxMode.IFRAME);
}
Run Code Online (Sandbox Code Playgroud)

Sup*_*r1o 9

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


Ami*_*wal 6

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

请参阅文档


Mog*_*dad 5

用于抑制使用HtmlService创建的WebApp的警告的两个选项是:

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

    .warning-bar {
      visibility: hidden;
    }
    
    Run Code Online (Sandbox Code Playgroud)

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

    父元素没有CSS支持,所以这是一个死胡同.

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

    使用jQuery:

    $('.warning-bar:first',parent.document).hide();
    
    Run Code Online (Sandbox Code Playgroud)

    使用纯JavaScript:

    top.getElementById('warning').style.display = 'none';
    
    Run Code Online (Sandbox Code Playgroud)

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

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

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

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