重新加载嵌入谷歌网站的 GAS 网络应用程序



我有一个嵌入在新的谷歌网站的web应用程序。这个嵌入的应用程序必须重新加载web应用程序。当web应用程序的表单完成时,应用程序打开一个带有按钮的模式,该按钮调用以下函数:

function reloadPage(){
google.script.run
.withSuccessHandler(function(url){window.open(url,"_top");})
.getScriptURL();
}

服务器端函数:

function getScriptURL() {
var url = ScriptApp.getService().getUrl();
console.log(url)
return url ;
}

我的控制台记录这个错误:

不安全的Javascript尝试启动导航ussercodeappanel:150从URL为URL的帧原点为https://sites.google.com。尝试导航顶层窗口的框架被沙盒化了,但是没有设置' allow-top-navigation'或' allow-top-navigation-by-user-activation '标志。

我需要做一个重新加载,因为表单注册一个值在一个工作表。我的应用程序验证我将输入的值不会在工作表上重复。因此,在提交表单之后,不会反映刚刚注册的值。例如,我输入ID 1,验证器将在工作表中查找该值。如果没有找到,它允许您输入,否则它会发送警报。提交表单后,字段被清除,我重新输入ID 1,然后验证器让它通过,因为它验证1不在电子表格上。所以有了充电,这个问题就不会发生了。

有没有办法重载应用程序而不出现这个错误?问候!

我找到了一个解决方案:

  1. 首先在我的html头放置下一行:

<base target="self">

  1. 我把我的javascript函数改成这样:

    function reloadPage(){google.script.run.withSuccessHandler(function(url){window.open(url,"_self");}).getScriptURL();}
    
  2. 在我的doGet函数我把这个:

    function doGet(e){
    var output = HtmlService.createTemplateFromFile('index');
    return  output.evaluate().setSandboxMode(HtmlService.SandboxMode.IFRAME).setXFrameOptionsMode(HtmlService.XFrameOptionsMode.ALLOWALL)
     }
    

有了这些改变,我的问题就解决了。谢谢你的评论!问候!

相关内容

  • 没有找到相关文章