3

是否可以关闭在 Apps 脚本中打开的 UI 窗口?

我认为答案是否定的:http://code.google.com/p/google-apps-script-issues/issues/detail?id=474&can=1&q=.close%28%29&colspec=Stars%20Opened% 20ID %20Type%20Status%20Summary%20Component%20Owner

但我想看看是否有其他意见。

我有一个弹出的“等待窗口”,我想在活动完成后关闭它。


var app = UiApp.getActiveApplication();

var ss = SpreadsheetApp.getActiveSpreadsheet();

var sheet = getSheetWithSubmissions(ss);

// create UI app, this works fine

app = createWaitPleaseUI(sheet);

ss.show(app);

//simulated activity

Utilities.sleep(5000);

//this doesn't work despite being in the documentation

app.close();

认为这是不可能的,但如果无法做到,希望谷歌将其从他们的文档中删除。

作为一种解决方法,我可以调出第二个 GUI,说“工作完成,单击确定”,然后它就可以正常工作了。

4

2 回答 2

6

您必须返回app对象才能对其进行更新,甚至关闭。

将您的最后一行更改为return app.close()

于 2012-06-21T00:51:16.757 回答
-1

您应该更彻底地阅读文档,它清楚地解释了电子表格中的 UI 需要通过返回来结束才能实际关闭。另外,我建议您可以相信来自顶级贡献者的答案,而不是相信您总是对文档和其他所有人都是正确的……没有冒犯,但总是欢迎谦虚:-)

这是从文档中提取的一段代码以证实:

// Close everything return when the close button is clicked
function close() {
  var app = UiApp.getActiveApplication();
  app.close();
  // The following line is REQUIRED for the widget to actually close.
  return app;
}
于 2012-07-14T08:46:30.240 回答