2014-05-20 22 views
0

我想在關閉firefox(或)IE窗口時拋出一個自定義確認窗口,如果窗體中有未保存的數據的話。但是這個問題在Chrome瀏覽器中沒有發生。 我重寫了onbeforeunload事件,但firefox會引發兩個確認窗口,一個是我的自定義確認,另一個是 firefox確認窗口,我想限制firefox引發的確認窗口,我只想要我的自定義確認。我給出了代碼下面的代碼片段,Firefox和IE上的自定義確認窗口

function unloadPage(){ 
    if(unsaved){ 
     return confirm(getMessage(kradVariables.MESSAGE_KEY_DIRTY_FIELDS)); 
    } 
} 
window.onbeforeunload = unloadPage; 

感謝, 普雷姆·庫馬爾乙

回答

0

您只能在onbeforeunload處理函數返回一個字符串,並調用確認(),警戒()和提示()是忽略不計。然後,返回的字符串將通過兩個按鈕呈現給用戶,然後他可以停留在頁面上或離開它。

自2011年5月25日,即調用 window.showModalDialog(),window.alert(),window.confirm(),和 window.prompt()方法可以在此被忽略HTML5規範狀態事件。

https://developer.mozilla.org/en-US/docs/Web/API/Window.onbeforeunload

例子:

window.onbeforeunload = function() 
    if(unsaved) { 
     return getMessage(kradVariables.MESSAGE_KEY_DIRTY_FIELDS); 
    } 
}; 
+0

基本上我想扔自定義消息在彈出的確認窗口,同時關閉瀏覽器窗口,我試圖通過刪除確認(),剛剛返回的字符串消息,但仍然無法在Firefox和IE window.onbeforeunload = function() (如果未保存)返回「您要關閉」; } }; –

+0

也許未得救是虛假的? –