2012-10-11 97 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);