我正在使用一个 GAS 网络应用程序,它需要在用户执行某些操作(例如单击特定的 div)时刷新其内容。
在客户端,我有这个从 onclick 调用的脚本
google.script.run.withSuccessHandler(refreshCallback).myServersideFunction();
function refreshCallback(roomsPlus) {
var statusDiv = document.getElementById("status");
statusDiv.innerHTML = "Reloading...";
window.location.reload(true);
};
状态 div 更改为“正在重新加载...”所以我知道回调被调用,但它永远不会重新加载页面。 Caja 或 google apps 脚本是否禁用页面刷新?还有其他刷新页面的方法吗?
最佳答案
您需要做的就是使用:
window.open("https://script.google.com/macros/s/web_app_ID/dev",'_top');
我下面的原始答案有效,但不需要:
Apps 脚本 Web 应用程序中有一个程序化的“变通办法”来重新加载/刷新页面。它基于 html 链接标记重新加载页面的能力,以及 JavaScript 调用该标记上的点击事件的能力。如果需要,您可以隐藏链接。
- 将链接标记添加到您的 HTML
- 如果你愿意,隐藏链接标签
- 在脚本标签中添加客户端代码以调用链接标签上的点击事件
- 根据需要运行代码
测试按钮:
<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>
实现一个简单的页面导航系统可能更可取:
关于javascript - Google 应用程序脚本 location.reload 在网络应用程序中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14674502/