2012-10-11 136 views
0

可能重複:
javascript detect browser close tab/close browser如何使用JavaScript或PHP檢測窗口關閉事件

我做PHP中的實時遊戲網站,我希望在調用一個函數關閉瀏覽器,我如何檢測使用PHP或JavaScript關閉瀏覽器?我曾嘗試使用onbeforeunload和onunload事件,但發現即使窗口刷新或使用後退按鈕,前進按鈕等來觸發這些事件。而且這些事件在所有流行的瀏覽器中都不起作用。是否有任何可行的方法來檢測只有在所有瀏覽器中表現良好的窗口關閉事件?

在此先感謝

+0

它只是關閉該頁面或關閉整個瀏覽器? –

+0

嘗試在stackoverflow上搜索,有幾個類似問題的實例。無法檢測瀏覽器關閉事件。我也有類似的挑戰。我使用cronjob通過檢查會話來更新數據庫的用戶狀態(在空閒時間過期10分鐘。) – Fr0zenFyr

+0

它只是關閉窗口而不是瀏覽器 – chinju

回答

2

您可以在PHP中的會話(與超時)當您訪問的網站,並有一個運行任務每20秒調用一個函數一個Ajax功能被設置爲1時將會話重新設置爲1。

當用戶關閉瀏覽器並且Ajax調用不再運行時,會話將超時並設置爲0/null。因此,當您重新訪問該網站時,會話將爲0,然後您可以重定向/按照用戶的要求進行操作。

setInterval(function(){ 
     $.ajax({ 
     url: '/', 
     success: function(){ 
      //do stuff with data 
      //Like send a POST/GET that 
      //if isset sets the session 1 again 
     } 
     }); 
    }, 20000);