2012-02-21 32 views
2

我正在寫一段JavaScript,它在運行時停止計時器(活動== 1),並關閉窗口,單擊鏈接,...Javascript在window.onbeforeunload中返回不能在Chrome中工作

我決定使用window.onbeforeunload函數,它在IE和FF上很好用,但不在Chrome上。

當我在Chrome中運行計時器時關閉窗口時,確實收到警告,表示我離開頁面時顯示「false」。

下面是相關代碼:

function SetEndTimeOnClose(lngPersonID,lngToDoID){ 
if(active == 1){ 
    var answer = confirm("Wil je de tijd stoppen?"); 
    if (answer){   
     try{ 
      StopStopwatch(); 
      SetEndTime(lngPersonID,lngToDoID); 
     } 
     catch(err){ 
     }; 
     return true;  
    } 
    else{ 
     return false; 
    } 
} 
} 

window.onbeforeunload = function(){ 
    return SetEndTimeOnClose(<%=lngOpenPersonID%>,<%=lngToDoID%>); 
} 
+0

Firefox和IE顯然允許'確認()'調用在「beforeunload」處理工作,但我認爲Chrome正在這裏做正確的事。處理程序中的confirm()是多餘的。 – Pointy 2012-02-21 16:28:37

回答

1

MDN,你需要返回將顯示確認對話框中的字符串。

+2

Chrome在這方面沒有解決方法嗎?奇怪的是,它在IE和FF中完美運行。 – 2012-02-21 18:51:50

+0

奇怪的是,Mozilla FF的行爲與Mozilla的開發人員網絡中描述的行爲不同。你是否嘗試過'返回'Wil je de tijd stoppen?';'從處理程序中調用'StopStopwatch(); SetEndTime(lngPersonID,lngToDoID);''從'unload'事件處理程序中? – 2012-02-21 20:09:52

相關問題