在GWT中确认浏览器退出

mmo*_*hab 1 java gwt web

我想在用户试图离开我的GWT应用程序时显示确认对话框.如果用户选择留在应用程序中,则不执行任何操作,否则应用程序应首先在关闭之前向服务器发送注销请求.

我怎样才能做到这一点?

要使用哪个处理程序?

Window.addCloseHandler

要么

Window.addWindowClosingHandler

Mar*_*ius 7

基于它的方法,addWindowClosingHandler似乎是你需要的.

编辑:我认为你需要做的是...... addWindowClosingHandler在窗口关闭时调用,即当用户单击关闭或重新加载按钮时.addCloseHandler窗口关闭时调用.所以你用两个!您使用结束处理程序来显示确认对话框,然后使用关闭处理程序来执行您只想在关闭时执行的操作.

    Window.addWindowClosingHandler(new Window.ClosingHandler() {
        @Override
        public void onWindowClosing(ClosingEvent event) {
            event.setMessage("Do you wanna close?");
            System.out.println("Closing...");
        }
    });

    Window.addCloseHandler(new CloseHandler<Window>() {
        @Override
        public void onClose(CloseEvent<Window> event) {
            System.out.println("Closed!");
        }       
    });
Run Code Online (Sandbox Code Playgroud)