重新加载嵌入在 google 个网站上的 GAS 网络应用程序
Reload a GAS's web app embedded on google sites
我在新 google 站点中嵌入了一个网络应用程序。此嵌入的应用程序必然必须重新加载网络应用程序。当 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 尝试从 URL”URL”usserCodeAppPanel:150 来源“https://sites.google.com”的框架启动导航 usserCodeAppPanel:150 =33=]”。试图在顶层导航的框架 window 已被沙盒化,但未设置 'allow-top-navigation' 或 'allow-top-navigation-by-user-activation' 标志。
我需要重新加载,因为表单在 sheet 中注册了一个值。我的应用程序验证我将输入的值没有在 sheet 上重复。所以提交表单后,并没有体现出刚刚注册的值。例如,我输入 ID 1,验证器在 worksheet 中查找该值。如果它没有找到它,它允许您输入它,否则它会发送警报。提交表单后,字段被清除,我重新输入 ID 1,然后验证器让它通过,因为它验证 1 不在 spreadsheet 上。所以充值就不会出现这个问题。
有没有重新加载应用程序而不会出现此错误的方法?
您好!
我找到了解决方案:
- 首先在我的 html header 上放下一行:
<base target="self">
我将 javascript 函数更改为:
function reloadPage(){google.script.run.withSuccessHandler(function(url){window.open(url,"_self");}).getScriptURL();}
在我的 doGet 函数中我放了这个:
function doGet(e){
var output = HtmlService.createTemplateFromFile('index');
return output.evaluate().setSandboxMode(HtmlService.SandboxMode.IFRAME).setXFrameOptionsMode(HtmlService.XFrameOptionsMode.ALLOWALL)
}
通过所有这些更改,我的问题得到了解决。感谢您的评论!您好!
我在新 google 站点中嵌入了一个网络应用程序。此嵌入的应用程序必然必须重新加载网络应用程序。当 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 尝试从 URL”URL”usserCodeAppPanel:150 来源“https://sites.google.com”的框架启动导航 usserCodeAppPanel:150 =33=]”。试图在顶层导航的框架 window 已被沙盒化,但未设置 'allow-top-navigation' 或 'allow-top-navigation-by-user-activation' 标志。
我需要重新加载,因为表单在 sheet 中注册了一个值。我的应用程序验证我将输入的值没有在 sheet 上重复。所以提交表单后,并没有体现出刚刚注册的值。例如,我输入 ID 1,验证器在 worksheet 中查找该值。如果它没有找到它,它允许您输入它,否则它会发送警报。提交表单后,字段被清除,我重新输入 ID 1,然后验证器让它通过,因为它验证 1 不在 spreadsheet 上。所以充值就不会出现这个问题。
有没有重新加载应用程序而不会出现此错误的方法? 您好!
我找到了解决方案:
- 首先在我的 html header 上放下一行:
<base target="self">
我将 javascript 函数更改为:
function reloadPage(){google.script.run.withSuccessHandler(function(url){window.open(url,"_self");}).getScriptURL();}
在我的 doGet 函数中我放了这个:
function doGet(e){ var output = HtmlService.createTemplateFromFile('index'); return output.evaluate().setSandboxMode(HtmlService.SandboxMode.IFRAME).setXFrameOptionsMode(HtmlService.XFrameOptionsMode.ALLOWALL) }
通过所有这些更改,我的问题得到了解决。感谢您的评论!您好!