2010-08-27 165 views
2

我需要关于浏览器关闭事件的帮助。我看到一个教程,但它不适用于所有浏览器。我需要一个适用于所有浏览器的JavaScript解决方案。我的目的是在浏览器关闭时删除一个PHP会话。关于浏览器关闭事件

+0

那么你尝试了什么?哪些浏览器有效或无效? – Mischa 2010-08-27 03:47:53

+0

不适用于Mozilla。 :( – Jorge 2010-08-27 03:49:56

回答

3

您可以使用window.onunload来确定用户是否正在离开页面/关闭窗口/关闭选项卡。

但是没有办法确定用户是否已经离开您的网站。他可能还会打开另一个选项卡或窗口。

因此,您唯一真正的解决方案是检查自该用户上次活动以来经过了多少时间。如果这必须实时发生,您可以添加类似Ajax的回调来每隔一分钟轮询一次服务器,以确保用户仍然打开窗口。

1
<script language=”javascript”> 

function deleteSession(){ 
// session deletion 
} 

window.onbeforeunload = deleteSession; 
</script> 
1

如果你只想要的东西时触发实际关闭浏览器,而不是只在一个页面加载时,您可以使用此代码:

window.onbeforeunload = function (e) { 
     if ((window.event.clientY < 0)) { 
      //window.localStorage.clear(); 
      //alert("Y coords: " + window.event.clientY) 
     } 
}; 

在我的例子,我在清理地方只有在浏览器关闭的情况下,才会在程序内的所有页面加载时忽略这些内容并将其警告给用户。