如何使用javascript或php检测窗口关闭事件

时间:2012-10-11 10:25:46

标签: php javascript jquery

  

可能重复:
  javascript detect browser close tab/close browser

我在php中做一个实时游戏网站,我希望在关闭浏览器时调用一个函数,我怎样才能检测到使用php或javascript关闭浏览器?我尝试过使用onbeforeunload和onunload事件,但发现即使刷新窗口或使用后退按钮,前进按钮等导航也会触发这些事件。而且这些事件在所有流行的浏览器中都不能正常工作。是否有任何可行的方法来检测在所有浏览器中都表现良好的窗口关闭事件?

提前致谢

1 个答案:

答案 0 :(得分:2)

您可以在PHP(设置为超时)中设置一个会话,当您访问网站时,该会话设置为1,并且具有每20秒运行一个任务的Ajax函数,该函数调用将会话再次设置为1的函数。 / p>

当用户关闭浏览器并且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);