繁体   English   中英

关闭Vaadin中的浏览器窗口

[英]Close the browser window in Vaadin

我已经google了很多但是无法找到解决这个问题的方法。 我有一个在浏览器窗口中运行的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()?

  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()"); 将按预期工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM