I am putting a GeoChart on my Google Site using a Google Apps Script. Viewing the page when I am not logged into my google account shows a grey banner at the top with states
If you embed the Google Script web app in another website using the IFRAME tag, the warning banner will be hidden. Make sure you set the page's X-Frame-Options
header to XFrameOptionsMode.ALLOWALL
and it will let any site iframe the web app page.
See docs.
If you embed it in a google site the banner will not display.
The two options that would seem possible for suppressing that warning from a WebApp made using HtmlService are:
Custom CSS, e.g. in Stylesheet.html (assuming you've started from the WebApp script template).
.warning-bar {
visibility: hidden;
}
I tried this, and found it had no effect on the final display. If there is an element with class="warning-bar"
inside the iframe'd HTML, that element will be hidden. Likewise if we try to modify the warning bar by id, #warning
; no impact on the element outside of our iframe.
There is no CSS support for parent elements, so this is a dead end.
Use client-side JavaScript to manipulate the elements outside of our iframe. By adding code to JavaScript.html (again, assuming WebApp script template), we can try to change document elements.
With jQuery:
$('.warning-bar:first',parent.document).hide();
With pure JavaScript:
top.getElementById('warning').style.display = 'none';
Neither of those work. The configuration that Google uses for hosting Google Apps Script blocks JavaScript running in an iframe from accessing items in the parent page. Here's the error that shows up in the JavaScript console:
Uncaught SecurityError: Blocked a frame with origin "https://n-gtoiuxrqufcpexrnkeysovsfb7ibnjwczjyz6ii-script.googleusercontent.com" from accessing a frame with origin "https://script.google.com". Protocols, domains, and ports must match.
They've forced our script's iframe to have a host domain that differs from that of the surrounding document, enabling the single-domain security policy to block the exact sort of actions we're trying to do.
According to the issue you linked to in your quesiton, the only option for avoiding that annoying message is to switch to a paid Google Apps Domain (e.g. Business or Education).
For anyone who cares, i got around this by embedding a google page with this issue in an iframe and using negative margins. Cant see the bars. Just throwing it out there in-case anyone else could use the suggestion
I'm successfully using the Chrome extension Custom JavaScript for websites for this. It allows you to run any JavaScript on any domain.
To hide the Google warning banner, just enter the following code in the custom JavaScript window:
document.getElementById('warning').style.display = 'none';
And hit save. It will be applied right away.