Google Apps脚本 - Web App中的关闭窗口

时间:2017-10-26 23:10:50

标签: google-apps-script gsuite

我在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");
}

我很感激任何有关此问题的信息和解决方案。感谢

2 个答案:

答案 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.