Hi,

I have the following code to prompt the user that if they navigate
away "bad stuff" could happen:

        /**
         * Adds a handler to show warning when page is being closed.
         */
        private void addCloseHandler() {
                Window.addWindowClosingHandler(new Window.ClosingHandler() {

                        public void onWindowClosing(ClosingEvent event) {
                                event.setMessage("Bad Stuff might happen");
                        }
                });

                Window.addCloseHandler(new CloseHandler<Window>() {

                        public void onClose(CloseEvent<Window> event) {
//Cleanup
                        }
                });
        }

If I manually type a new URL into IE6/7/8 such as www.google.com, the
prompt appears, and if the user clicks cancel, the redirect does not
occur as expected.

However, I have a logout button that logs the user out, and then does
a simple $wnd.location="some url". When this is pressed, the popup
appears as before and warns the user, but regardless of whether the
user clicks ok or cancel, they are always logged out and redirected.
This does not happen in Chrome or Firefox which work exactly as
expected (surprise!).

The code for this is below:

        public static void doLogout() {
                RequestBuilder rb = new RequestBuilder(RequestBuilder.POST,
GwtUtils.getServerUrl()
                                + "/mywebsite?action=doLogout");
                try {

                        rb.sendRequest("", new RequestCallback() {
                                public void onError(Request request, Throwable 
exception) {

                                        //do something
                                }

                                public void onResponseReceived(Request request, 
Response response)
{
                                        GwtUtils.redirect(getLogoutUrl());
                                }

                        });
                } catch (RequestException e) {
                        DebugUtils.addDebugMessage("Exception logging out", e);
                        GwtUtils.redirect(getLogoutUrl());
                }

        }

        And in my GetUtils class I have the following Native method:

        public static native void redirect(String url)/*-{
                $wnd.location = url;
        }-*/;


-- 
You received this message because you are subscribed to the Google Groups 
"Google Web Toolkit" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en.

Reply via email to