2012-05-31 45 views
1

我使用此腳本來防止頁面的重新加載和返回按鈕導航,以通知用戶他/她是否離開,所做的更改將會丟失。onbeforeunload循環並掛起Firefox

在Firefox中,只有在點擊後退按鈕時纔會出現問題。 顯示警告對話框,只要持續循環備份,無論您按「保持」還是「離開」,並且必須強制關閉Firefox。

有沒有更好的腳本,這實際上工作在FF?

window.onbeforeunload = function (e) { 
    e = e || window.event; 

    if (e) { 
     e.returnValue = message; 
    } 

    return message; 
}; 
+0

你從完全腳本期待什麼行爲?只是防止用戶重新加載頁面..?除非完全有必要,否則我建議不要觸及瀏覽器的默認行爲。 –

+0

這是必要的。它在Chrome和Safari中很有用。我想通知用戶;如果他/她離開,所做的更改將會丟失。用戶可以選擇離開或停留。 – user1121487

+0

好的,唯一的錯誤是當你在Firefox中按下「back」時?在問題中寫出準確的預期行爲,你很可能會得到很好的答案。 –

回答

2

此代碼對我的作品在Firefox和Chrome:

<script type="text/javascript"> 
window.onbeforeunload = confirmExit; 
function confirmExit() 
{ 
    return "Are you sure you want to leave?"; 
} 
</script> 
+0

現在它開始循環/掛起... – user1121487

+0

它可能是瀏覽器中的錯誤,你有沒有更改代碼?如果是在你的文章中更新你的上面的代碼,所以我可以再看看:) –

+0

謝謝。這是相同的代碼,我在函數內部使用它,但我也在函數之外嘗試了它。看起來如果你重新加載頁面並點擊警告中的「離開」,然後按瀏覽器後退按鈕,對話框就開始循環。如果你現在多次按住「停留」,你可能會斷開循環,但是如果你按下「離開」循環繼續,然後它只顯示一個對話框,沒有任何信息只是一個取消和一個確定按鈕,FF需要一個力量放棄。 – user1121487