关闭Vaadin浏览器窗口(Close the browser window in Vaadin)

2019-10-18 10:01发布

我已经google'd了不少,但没能找到这个问题的解决方案。 我有一个在浏览器窗口中运行的应用程序Vaadin。 我有它退出按钮,点击它必须无效会话并关闭浏览器窗口。 我能得到这个代码无效会话并关闭应用程序。 不过,我期待也关闭浏览器窗口,这是在我没有任何成功

WebApplicationContext webCtx = (WebApplicationContext) appRef.getMainWindow().getApplication().getContext();
                HttpSession session = webCtx.getHttpSession();
                session.invalidate();
                appRef.getMainWindow().getApplication().close();

我使用vaadin 6.x和尝试以下,但他们没有在浏览器上我试过这是Chrome和IE浏览器。

            appRef.getMainWindow().executeJavaScript("window.close();");

任何想法将不胜感激。 另一个问题我已经是我需要让主窗口的名称,然后调用mainWindow.close(); 或者只是window.close()的?

Answer 1:

  1. 阅读https://vaadin.com/book/vaadin6/-/page/application.close.html如果你还没有这样做的远。
  2. 如果appRef已经是你的应用程序,你不必调用appRef.getMainWindow().getApplication()中获得了应用。 只要做到appRef.close();
  3. 不要手动无效的会话。 它搅乱与vaadin生命周期,所以接下来的行不再执行,至少不会在vaadin环境。 只要做到“application.close()”,让vaadin做休息。
  4. 在vaadin 6“window.close()的”工程,我用它与IE和铬。 所以你删除的进程失效后的东西,你的代码appRef.getMainWindow().executeJavascript("window.close()"); 将正常工作。


文章来源: Close the browser window in Vaadin