窗正在關閉處理不妥善處理不工作在我的Chrome下的代碼(我在它的最後一個版本,26)GWT:的windowClosing處理鉻
我有一個監聽Window.ClosingEvent
類。如果在用戶上傳文件時關閉窗口(關閉窗口,用戶鍵入另一個url ...),應用程序會提示用戶「您確定嗎?」。
GWT 2.5.0和2.5.1 IEXPLORER 10 OK 火狐21 OK Opera不支持的事件還。 Chrome 26無法正常工作。
這裏的GWT代碼:
public abstract class ActiveUploadTransitionController extends TransitionController implements ClosingHandler {
...
@Override
public void onWindowClosing(Window.ClosingEvent event){
if(showMessage()){
if(folder != null && folder.hasActiveFileUploads()){
event.setMessage(getUploadActiveLeavingMessage());
}
}
}
...
protected ActiveUploadTransitionController()
{
...
Window.addWindowClosingHandler(this);
...
}
}
上面的代碼要求,並且在資源管理器中正常工作,火狐所以我覺得代碼就可以了。
有趣的是,如果我在JavaScript中實現一個獨立的測試,它在瀏覽器,Firefox和Chrome瀏覽器中工作正常。
//JavaScript
var handler = function(e){
var show = true;
if(show){
var msg = "messageTest";
(e || window.event).returnValue = msg;
return msg;
}
return;
}
if(window.addEventListener){
window.addEventListener("beforeunload", handler);
}
因爲孤立的JavaScript的工作我也tryed來實現它本機的方式。一樣的問題。適用於IExplorer,FireFox,但不適用於Chrome。
var handler = function (e) {
var showMessage = [email protected]::showMessage()();
if(showMessage){
var confirmationMessage = [email protected]::getUploadActiveLeavingMessage()();
(e || window.event).returnValue = confirmationMessage;
return confirmationMessage;
}
tmpBeforeUnload(e);
return;
}
if($wnd.addEventListener){
$wnd.onbeforeunload = handler;
}
這個問題讓我發瘋。任何想法的傢伙?
謝謝大家!