从iframe调用onunload函数

时间:2011-06-07 13:09:19

标签: javascript iframe javascript-events onunload

我正在开发一款多人国际象棋游戏作为Facebook应用程序。 如果一个玩家通过关闭浏览器离开游戏,则另一个玩家应该收到通知。因此,如果一个玩家关闭了Brwoser,则应该调用unlink函数来取消玩家的链接。这适用于facebook外的 onunload 。 问题是,facebook应用程序是在iframe中加载的, onunload 事件在那里不起作用。

所以我需要一种方法在用户关闭浏览器时调用iframe中的函数。

1 个答案:

答案 0 :(得分:1)

这可能不是您正在寻找的答案,但unload上的“注销”将无法可靠地运行。举一个极端的例子,考虑浏览器崩溃或被Windows任务管理器杀死的情况。因此,您最好实施一种额外的机制来检测用户是否离开。通常,这是通过定期向服务器发送请求来完成的。如果在很长一段时间内未收到此请求(意味着无法通过缓慢的连接或其他打嗝导致某些问题),则取消链接用户。

也就是说,我测试了Firefox 4和MSIE 8,如果选项卡或浏览器关闭,它们都会在帧上正确触发unload事件。 Chrome 12不会这样做,这可能是您一直在测试的浏览器。我认为这是Chrome漏洞。