2012-02-18 117 views
1

我正在創建一個聊天客戶端,它使用數據庫來檢查會話0-等待,1-運行,2-關閉的狀態。檢測窗口關閉

我有一個關閉按鈕,它會將狀態更改爲2,但我想知道,如何通過按x來檢測瀏覽器是否關閉?

這樣做的主要原因是我不希望當其中一個參與者關閉瀏覽器時顯示會話正在運行。

回答

3

使用unloadonbeforeunload事件:

window.onunload = window.onbeforeunload = function(){...}; 

最好註冊兩個事件確定回調會觸發。

+0

試過,沒有在Chrome中工作。 – THEK 2012-02-18 22:22:44

+0

@THEK。爲Chrome添加了答案。試試吧 – gdoron 2012-02-18 22:25:02

+0

非常感謝您的快速回復。完美的作品。 – THEK 2012-02-18 23:01:19

4

你可以用JavaScript來監聽onbeforeunload-event,當瀏覽器窗口關閉時會觸發它。

當你標記與jQuery的問題,你可以使用.unload()

$(window).unload(function() { 
    // Do some ajax-request to kill the session 
}); 

沒有jQuery的那就是:

window.onbeforeunload = function() { 
    // Do some ajax-request to kill the session 
}; 
1

您可以使用beforeunload事件,因爲卸載事件jQuery的1.8版本,每當用戶離開你的頁面的beforeunload事件觸發棄用。

$(window).bind("beforeunload", function() { 
    return confirm("Do you really want to close?"); 
})