javascript - Google 应用程序脚本 location.reload 在网络应用程序中

标签 javascript html google-apps-script reload window.location

我正在使用一个 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>

实现一个简单的页面导航系统可能更可取:

Page Navigation Web App - Apps Script

关于javascript - Google 应用程序脚本 location.reload 在网络应用程序中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14674502/

相关文章:

javascript - $(window).load(function () 不起作用

javascript - jQuery:当 onkeyup 工作时,onclick 事件不工作

android - Android 上设置的默认字体

javascript - Google Apps 脚本将已完成的项目移动到另一个电子表格

javascript - if 语句用于根据电子邮件检查用户是否获得授权

javascript - 如何在整个字符串中将字符串替换为其他字符串

javascript - 替换屏幕文本

google-apps-script - 通过 postman 向 Google Apps Script API 发出请求

javascript - 获取嵌套在div中的span内的数字

html - 与表单控件类相关的类在 bootstrap 4 中无法正常运行