Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/461.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在web应用程序中重新加载Google应用程序脚本location.reload_Javascript_Html_Google Apps Script_Reload_Window.location - Fatal编程技术网

Javascript 在web应用程序中重新加载Google应用程序脚本location.reload

Javascript 在web应用程序中重新加载Google应用程序脚本location.reload,javascript,html,google-apps-script,reload,window.location,Javascript,Html,Google Apps Script,Reload,Window.location,我使用的GAS web应用程序需要在用户执行某些操作(如单击特定div)时刷新其内容 在客户端,我有一个从onclick调用的脚本 google.script.run.withSuccessHandler(refreshCallback).myServersideFunction(); function refreshCallback(roomsPlus) { var statusDiv = document.getElementById("status"); statusDi

我使用的GAS web应用程序需要在用户执行某些操作(如单击特定div)时刷新其内容

在客户端,我有一个从onclick调用的脚本

google.script.run.withSuccessHandler(refreshCallback).myServersideFunction();

function refreshCallback(roomsPlus) {
    var statusDiv = document.getElementById("status");
    statusDiv.innerHTML = "Reloading...";
    window.location.reload(true);
};
status div变为“Reloading…”,因此我知道回调被调用,但它从不重新加载页面。Caja或google应用程序脚本是否禁用页面刷新?是否有其他方法刷新页面?

编辑 Caja于2016年7月16日从Web应用程序HtmlService中删除

编辑结束


不幸的是,HtmlService使用的Caja清理引擎限制了对窗口对象的访问,从而阻止您通过编程方式重新加载页面。这是已知的服务限制,我们正在努力更好地记录它。

您只需使用:

window.open("https://script.google.com/macros/s/web_app_ID/dev",'_top');
下面是我的原始答案,但不需要:

在应用程序脚本Web应用程序中,有一个用于重新加载/刷新页面的编程“变通方法”。它基于html链接标记重新加载页面的能力,以及JavaScript调用该标记上的单击事件的能力。如果需要,可以隐藏链接

  • 在HTML中添加链接标记
  • 如果愿意,请隐藏链接标记
  • 在脚本标记中添加客户端代码,以调用链接标记上的单击事件
  • 按照您的意愿运行代码
测试按钮:
触发链接标签
链接:

脚本:

window.reloadTheWebApp=函数(){
log('reloadthewebapprun');
var linkTag=document.getElementById('testLink');
linkTag.click();
}
最好实现一个简单的页面导航系统:


那么,如何解决这个问题呢?使用GAS页面刷新?Caja现在不再用于应用程序脚本Web应用程序。我已经实现了此解决方案,如果我通过它的exec链接进行测试,它可以完美地工作,但是如果它嵌入到Google Pages网站中,它就不会进入重新加载部分。为什么?对不起,我不知道。
<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>