Events GWT WindowClosingHandler在浏览器刷新时也会触发
下面的代码是我用来检测Events GWT WindowClosingHandler在浏览器刷新时也会触发,events,gwt,user-interface,browser,Events,Gwt,User Interface,Browser,下面的代码是我用来检测浏览器关闭事件的,以使用户从网站注销的 但不幸的是,此事件也会在Refresh上触发:( Window.addWindowClosingHandler(新建Window.ClosingHandler()){ WindowClosing上的公共无效(Window.ClosingEvent ClosingEvent){ setMessage(“您真的要关闭页面吗?”); } }); 是的,我通过了 但我没有发现任何积极的结果 根据GWT类api: Fired just be
浏览器关闭事件的
,以使用户从网站注销的
但不幸的是,此事件也会在Refresh
上触发:(
Window.addWindowClosingHandler(新建Window.ClosingHandler()){
WindowClosing上的公共无效(Window.ClosingEvent ClosingEvent){
setMessage(“您真的要关闭页面吗?”);
}
});
是的,我通过了
但我没有发现任何积极的结果
根据GWT类api:
Fired just before the browser window closes or navigates to a different site.
但我仍然希望我们能够检测到浏览器刷新
有人能给出提示吗?不可能知道是否调用了窗口.ClosingEvent
来刷新或关闭浏览器。但是,如果您的问题只是检测浏览器是否已关闭,您可以使用会话cookie
这里有一个实用程序类可以帮助您。只需在onModuleLoad
中调用下面的行即可进行测试
测试线:
@Override
public void onModuleLoad() {
if (BrowserCloseDetector.get().wasClosed()) {
GWT.log("Browser was closed.");
}
else {
GWT.log("Refreshing or returning from another page.");
}
}
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() {
return (instance == null) ? instance = new BrowserCloseDetector() : instance;
}
public boolean wasClosed() {
return Cookies.getCookie(COOKIE) == null;
}
}
实用程序类:
@Override
public void onModuleLoad() {
if (BrowserCloseDetector.get().wasClosed()) {
GWT.log("Browser was closed.");
}
else {
GWT.log("Refreshing or returning from another page.");
}
}
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() {
return (instance == null) ? instance = new BrowserCloseDetector() : instance;
}
public boolean wasClosed() {
return Cookies.getCookie(COOKIE) == null;
}
}
无法知道是否正在调用窗口.ClosingEvent
以刷新或关闭浏览器。但是,如果您的问题只是检测浏览器是否已关闭,则可以使用会话cookie
这里有一个实用程序类可以帮助您。只需在onModuleLoad
中调用下面的行即可进行测试
测试线:
@Override
public void onModuleLoad() {
if (BrowserCloseDetector.get().wasClosed()) {
GWT.log("Browser was closed.");
}
else {
GWT.log("Refreshing or returning from another page.");
}
}
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() {
return (instance == null) ? instance = new BrowserCloseDetector() : instance;
}
public boolean wasClosed() {
return Cookies.getCookie(COOKIE) == null;
}
}
实用程序类:
@Override
public void onModuleLoad() {
if (BrowserCloseDetector.get().wasClosed()) {
GWT.log("Browser was closed.");
}
else {
GWT.log("Refreshing or returning from another page.");
}
}
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() {
return (instance == null) ? instance = new BrowserCloseDetector() : instance;
}
public boolean wasClosed() {
return Cookies.getCookie(COOKIE) == null;
}
}
@这个密码确实有效。也许不是你想要的,对吧?@这个密码确实有效。也许不是你想要的,对吧?