0

可能重复:
javascript检测浏览器关闭选项卡/关闭浏览器

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

提前致谢

4

1 回答 1

2

您可以在 PHP 中设置一个会话(具有超时),当您访问该网站时将其设置为 1,并具有一个 Ajax 函数,该函数每 20 秒运行一次任务,该函数调用一个将会话再次设置为 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);
于 2012-10-11T10:43:39.460 回答