我在Google Apps脚本中有一个网络应用程序,我需要在单击按钮时关闭浏览器标签。我试过不同的解决方案,但它不能按我的要求工作。
这是我的HTML代码。
<!DOCTYPE html>
<html>
<head>
<base target="_top">
</head>
<body>
<h1>Demo Close tab</h1>
<p>When you click the button, you must close this tab.</p>
<button>Close</button>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
<script>
window.onload = function() {
$("button").click(function() {
// window.close();
// window.top.close();
// window.open("","_top","").close();
});
}
</script>
</body>
</html>
这是我的GS代码
function doGet() {
var template = HtmlService.createTemplateFromFile("Index");
return template.evaluate()
.setSandboxMode(HtmlService.SandboxMode.IFRAME)
.addMetaTag("viewport", "width=device-width, initial-scale=1")
.setXFrameOptionsMode(HtmlService.XFrameOptionsMode.ALLOWALL)
.setTitle("Demo Google Analytics");
}
我很感激任何有关此问题的信息和解决方案。感谢
答案 0 :(得分:0)
如文档HTML Service: Restrictions中所述:
调用时,setSandboxMode方法现在无效。
默认情况下,您的Google Apps脚本会在iframe中运行,无论是否尝试更改沙盒模式。我强烈怀疑沙盒设置会阻止您访问父window
,但您可能会尝试window.parent.window
。
答案 1 :(得分:0)
根据Javascript文档: Window.close()
只允许对使用window.open()方法由脚本打开的窗口调用此方法。如果脚本没有打开窗口,控制台中会出现与此类似的错误:
Scripts may not close windows that were not opened by script.