CloseHandler 및 Window.ClosingHandler()가 작동하지 않거나 IE와 동일한 방식으로 Firefox를 반대로 트리거하지 않는 것으로 보입니다.CloseHandler <Window>과 Window.ClosingHandler()가 IE에서 다르게 작동합니다.
Window.addWindowClosingHandler(new Window.ClosingHandler() {
@Override
public void onWindowClosing(ClosingEvent event) {
event.setMessage(message);
}
Window.addCloseHandler(new CloseHandler<Window>() {
@Override
public void onClose(CloseEvent<Window> event) {
//Window.alert("debug1");
if(recordId!=null){
DatabaseQueryServiceAsync dbQueryService = DatabaseQueryService.Util.getInstance();
dbQueryService.releaseRecordLock(recordId, new AsyncCallback<String>() {
@Override
public void onFailure(Throwable arg0) {
}
@Override
public void onSuccess(String arg0) {
}
});
}
}
});
});
예를 들어, IE의 ClosingHandler는 위젯 내에서 패널을 바꿀 때 메시지를 표시합니다. 이것은 Firefox에서 발생하지 않습니다.
IE에서 창을 닫을 때 CloseHandler가 트리거되지 않는 것처럼 보이지만 firefox에서는 닫히지 않습니다. 흥미로운 점은, addCloseHandler() 메소드에 Window.alert ("debug1") 메시지를 넣으면 아래의 콜백을 실행하지만, 제거하면 바로 콜백이 발생하지 않는다는 것입니다 . 파이어 폭스에서는 두 가지 상황 모두에서 콜백을 실행하고 실행합니다. 그래서, 나는 기본적으로 내 머리카락을 꺼내서 무슨 일이 일어나고 있는지 정말로 이해하지 못하고 있습니다. 어떤 도움이라도 대단히 감사하겠습니다. 감사.
사용자가 ClosingEvent를 확인한 후에 만 코드를 실행하려면 CloseHandler *가 실제로 유용합니다. –