I am using a GAS web app that needs to refresh its contents when a user takes certain actions (like clicking on a particular div).
On the clientside, I have this script that gets called from onclick
google.script.run.withSuccessHandler(refreshCallback).myServersideFunction();
function refreshCallback(roomsPlus) {
var statusDiv = document.getElementById("status");
statusDiv.innerHTML = "Reloading...";
window.location.reload(true);
};
The status div changes to "Reloading..." so I know the callback gets called,but then it never reloads the page. Does Caja or google apps script disable page refreshing? Is there another way to refresh the page?
At the top right of the script project, click Deploy > Test deployments. Next to "Select type," click Enable deployment types settings > Web app. Under the web app URL, click Copy. Paste the URL in your browser and test your web app.
Google Apps Script projects are now included in the docs list in Google Drive. - Your projects are now stored in Google Drive and can be shared just like any other file.
All you need to do is use:
window.open("https://script.google.com/macros/s/web_app_ID/dev",'_top');
My original answer below works, but is un-needed:
There is a programmatic "Work Around" to reload/refresh the page in an Apps Script Web App. It is based on the capability of an html link tag to reload the page, and the ability of JavaScript to invoke the click event on that tag. You can hide the link if you want.
<button onmouseup="reloadTheWebApp()">Trigger the Link Tag</button>
<a id="testLink" style="display:none"
href="https://script.google.com/macros/s/script_ID/exec">Reload the Web App</a>
<script>
window.reloadTheWebApp = function() {
console.log('reloadTheWebApp ran');
var linkTag = document.getElementById('testLink');
linkTag.click();
}
</script>
It may be preferable to implement a simple page navigation system:
Page Navigation Web App - Apps Script
Caja was removed July 16, 2016 from Web App HtmlService.
Native Sandbox Mode
An Update to HTML Service
End of edit
Unfortunately the Caja sanitization engine used by HtmlService restricts access to the window object, preventing you from programatically reloading the page. This is a known restriction of the service and we are working to better document it.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With