我正在开发一款多人国际象棋游戏作为 Facebook 应用程序。如果一个玩家通过关闭浏览器离开游戏,另一个玩家应该会收到通知。因此,如果一个播放器关闭了浏览器,则应调用取消链接函数来取消链接播放器。这适用onunload
于 Facebook 外部。问题是,Facebook 应用程序是在 iframe 中加载的,并且该onunload
事件在那里不起作用。
因此,当用户关闭浏览器时,我需要一种在 iframe 中调用函数的方法。
我正在开发一款多人国际象棋游戏作为 Facebook 应用程序。如果一个玩家通过关闭浏览器离开游戏,另一个玩家应该会收到通知。因此,如果一个播放器关闭了浏览器,则应调用取消链接函数来取消链接播放器。这适用onunload
于 Facebook 外部。问题是,Facebook 应用程序是在 iframe 中加载的,并且该onunload
事件在那里不起作用。
因此,当用户关闭浏览器时,我需要一种在 iframe 中调用函数的方法。
这可能不是您正在寻找的答案,但“注销”unload
永远不会可靠地工作。举一个极端的例子,考虑浏览器崩溃或被 Windows 任务管理器杀死的情况。所以你最好实现一个额外的机制来检测用户是否离开。通常这是通过定期向服务器发送请求来完成的。如果在很长一段时间内未收到此请求(意味着连接速度慢或其他故障不会导致此请求),则取消与用户的链接。
也就是说,我测试了 Firefox 4 和 MSIE 8,unload
如果选项卡或浏览器关闭,它们都会在框架上正确触发事件。Chrome 12 没有这样做,这可能是您一直在测试的浏览器。我认为这是一个 Chrome 错误。