2013-04-09 63 views
0

我有一个jQuery函数,它会像:jQuery的卸载()只在一定的情况下

$(window).unload(function() { 
    chat.logout(); 
}); 

我要激活其他功能,chat.logout();只有当用户离开页面时,或当链接目标(href)是而不是play.php?mod=...。我不希望该功能在页面刷新或任何其他情况下运行。

我该怎么做?

回答

1

出于安全原因,没有办法确定用户想要导航到的目标URL。所以,您不能在卸载处理程序上应用该逻辑。

虽然,你可以得到目前所在的位置:

document.location.href 

我会建议你只需按照标准,包括“登出”的链接,这样你就可以关闭聊天时,其上的用户点击和不仅在用户关闭窗口或导航到另一个页面时(请参阅Google和Facebook如何实施其会话)。

+0

问题是,在'play.php'页面中的每个其他'GET',聊天是不同的,这是其他房间。当页面加载时,它会更新你在x房间而不是y。所以当他导航到其他页面时,而不是'play.php',或他离开页面时,我想注销用户。如果我使用函数'unload()',当用户刷新页面时,他会变成脱机的,尽管我每刷新一次使用php更新db,所以我不希望脚本也会刷新。 – HtmHell 2013-04-10 14:11:00

+0

你为什么不把这个逻辑放在服务器端?在你的php控制器上? – ricardohdz 2013-04-10 14:58:21

+0

因为我必须告诉服务器端用户从聊天中注销,我必须在客户端进行。我希望清单能够按时更新。如果不可能,检查谁在线的最佳方法是什么? – HtmHell 2013-04-11 17:06:44

相关问题