Tuesday, 15 June 2010

events - GWT WindowClosingHandler firing on Browser refresh too -



events - GWT WindowClosingHandler firing on Browser refresh too -

here facing issue code below wrote observe browser's close event create user logged out website.

but unfortunately event fires on refresh :(.

class="lang-java prettyprint-override">window.addwindowclosinghandler(new window.closinghandler() { public void onwindowclosing(window.closingevent closingevent) { closingevent.setmessage("do want close page?"); } });

yes, gone through gwt observe browser refresh in closehandler

but didn't find positive results there.

as per gwt window.closingevent class api:

fired before browser window closes or navigates different site.

but still have hope can observe browser refresh.

can 1 give hint regarding this?

it imposible know if window.closingevent beingness called refresh or close browser. but, if problem observe if browser has been closed, can utilize session cookies.

here 1 utility class can help you. phone call lines below in onmoduleload test.

the test lines:

@override public void onmoduleload() { if (browserclosedetector.get().wasclosed()) { gwt.log("browser closed."); } else { gwt.log("refreshing or returning page."); } }

the utility class:

import com.google.gwt.user.client.cookies; import com.google.gwt.user.client.window; public class browserclosedetector { private static final string cookie = "detector"; private static browserclosedetector instance; private browserclosedetector() { window.addwindowclosinghandler(new window.closinghandler() { public void onwindowclosing(window.closingevent closingevent) { cookies.setcookie(cookie, ""); } }); } public static browserclosedetector get() { homecoming (instance == null) ? instance = new browserclosedetector() : instance; } public boolean wasclosed() { homecoming cookies.getcookie(cookie) == null; } }

events gwt user-interface browser

No comments:

Post a Comment