2013-02-07 47 views
6

在用戶選擇重新加載/關閉瀏覽器/退出頁面之前,有沒有辦法執行一個函數?在瀏覽器重新加載/關閉瀏覽器/退出頁面之前執行Javascript函數?

我需要這個「在線/離線」狀態的功能我想寫。我想檢測用戶是否仍在網頁上。

任何想法? :)

也許有這種更好的方法?

+0

window.onbeforeunload =函數(){...} – C5H8NNaO4

+2

window.onbeforeunload,參考:https://developer.mozilla.org/en-US/docs/DOM/window.onbeforeunload – PatrikAkerstrand

回答

16

內聯:

window.onbeforeunload = function(event) { 
    // do something 
    return null; 
}; 

或運行預先定義的函數:

window.onbeforeunload = myFunction; 

var myFunction = function(event) { 
    // do something 
    return null; 
} 

注:

當這個事件返回一個非空值,則提示用戶以 確認頁面卸載。在大多數瀏覽器中, 事件的返回值顯示在此對話框中。

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

https://developer.mozilla.org/en-US/docs/DOM/window.onbeforeunload

+2

Downvoters,護理評論,爲什麼? –

+0

如果你返回一個字符串,那麼這將在彈出窗口中顯示爲一條消息給用戶。空/返回值將允許瀏覽器像往常一樣卸載頁面。看到這裏MDN參考:https://developer.mozilla.org/en-US/docs/DOM/window.onbeforeunload – PatrikAkerstrand

+0

-1增加不必要的函數聲明,我將它,如果你補充一點,變爲+1(如果)返回值顯示在提示框中,詢問用戶他/她是否真的想離開該頁面 – C5H8NNaO4

0

試試這個:

$(window).unload(function() { 
    alert("Handler for .unload() called."); 
}); 

OR這一點,如果你想構警報

<script> 
window.onbeforeunload = function(e) { 
    return 'Your dialog message'; 
}; 
</script>