2012-02-17 73 views
0

我想處理window.onbeforeunload事件。我可以這樣處理如何處理瀏覽器的window.onbeforeunload事件

window.onbeforeunload = function() { 
    return "MSG"; 
} 

但在這種情況下,它顯示了一個彈出要求用戶確認我不希望出現這種情況的確認對話框相反,它會直接return falseevent.cancel = true

回答

1

你不能在onBeforeUnload中做到這一點。因爲這個原因;用戶已經發送請求離開頁面並且事件已被攔截。確認是你可以做的最好的,除非你阻止事件進一步發展到事件鏈(比如onkeydown)。例如,如果您希望用戶無法使用其鍵盤在歷史中前後移動或重新加載頁面,則可以使用;

var catchKey = { 
    37: true, /// left 
    39: true /// right 
}; 
window.onkeydown = function(event) { 
    if (catchKey[event.keyCode] && event.ctrlKey) { 
     event.preventDefault(); 
     event.stopPropagation(); 
    } 
} 

希望有所幫助!

0

基本上你想阻止用戶關閉瀏覽器窗口/標籤頁或者離開你的頁面?

我相信沒有瀏覽器製造商會讓你這麼做......那麼在這種情況下關閉瀏覽器的唯一方法就是殺死這個進程。

所以:據我所知,不可能。