2012-11-30 1176 views
0

當用戶通過在瀏覽器中輸入地址離開網站並點擊返回或用戶關閉瀏覽器中的瀏覽器時,我試圖執行JavaScript函數一段時間'x'按鈕。離開網站或關閉瀏覽器時觸發的事件

我試圖卸載事件,但我不能得到警報

這是我在做什麼:

$(window).unload(function() { 
    alert("Are you sure?"); 
}); 

$(body).unload(function() { 
    alert("Are you sure?"); 
}); 

我跑出來的想法!

+1

[這是你要找的](http://stackoverflow.com/a/6065085/467164) –

+0

[jQuery - beforeunload]的可能重複(http://stackoverflow.com/questions/6063522/jquery-beforeunload) – undefined

回答

2

您可以收聽在卸載事件之前觸發的beforeunload事件。

$(window).on('beforeunload', function(){ 
    // ... 
}) 
+1

beforeunload期望你返回一個字符串,我相信這可能值得指出。 –

2

某些瀏覽器(如Chrome)會在卸載事件處理程序中阻止警報,以防止出現這些令人討厭的消息。嘗試一個console.log或者放入一個斷點來找出當你沒有警報時處理程序是否被觸發。

等類似的一行的問題:

window.onunload is not working properly in Chrome browser. Can any one help me?

只能通過returning a string in a beforeunload handler(HT @undefined)通過警報,但我會避免甚至認爲,因爲彈出窗口一般都是壞的,大多數人在他們真正考慮盒子的內容之前,將做最低限度的處理,以制定出這種使人不快的選擇。

0
$(window).bind('beforeunload', function(){ 
    alert("Are your sure?") 
}); 
1

你window.onbeforeunload定義,如果它返回一個字符串,它會彈出一個確認導航提示與該消息的功能。

警報可能會被忽略!

window.onbeforeunload = function() { 
    return "All unsaved data will be lost. Are you sure?"; 
}; 

一些瀏覽器處理不同的onbeforeunload。最近的Firefox例如會忽略你的返回字符串,只顯示一個標準的消息。