关闭包含表单的App Script侧边栏

时间:2015-12-09 12:53:33

标签: html forms google-apps-script server client

我在侧边栏中运行了一个运行html表单的Google Apps脚本。 表单答案用于生成文档。我的问题是我想在程序完成后关闭侧边栏(点击提交后)。

<form id="myForm">
    <input name="name" type="text"/>
    <input type="button" value="Submit" onclick="google.script.run.withFailureHandler(fail).
                                        withSuccessHandler(google.script.host.close()).
                                        doStuff(this.parentNode)"/>

</form>

如果删除withSuccessHandler,程序将按预期运行,否则不会。我有办法在doStuff()结束时关闭侧边栏吗?

Documentation:侧边栏可以通过在HTML服务接口的客户端调用google.script.host.close()或在UI服务接口中调用UiInstance.close()来关闭自己。侧栏不能被其他界面关闭,只能由用户或自己关闭。

UiInstance已标记为已弃用。

1 个答案:

答案 0 :(得分:0)

onclick()属性可以包含多个函数。您可以在所有代码之后放置google.script.host.close()语句。只需确保在所有google.script.run内容中放置一个分号:

<input type="button" value="Submit" 
  onclick="google.script.run.withFailureHandler(fail)
  .doStuff(this.parentNode); google.script.host.close();"/>

您将大量代码打包到onclick()属性中。你可以有一个单独的功能:

onclick="serverCall();"

window.serverCall = function() {
  google.script.run
    .withFailureHandler(fail)
    .doStuff(this.parentNode);

  google.script.host.close();
};