检测用户何时离开Flex中的页面/浏览器

时间:2008-10-07 19:56:09

标签: flex actionscript-3

我有一个包含Flex应用程序的HTML包装器,是否有可以监听的事件,当用户通过导航箭头或关闭浏览器离开HTML包装器时会触发该事件?

感谢。

5 个答案:

答案 0 :(得分:2)

您还可以在Flash中侦听Event.ACTIVATE和Event.DEACTIVATE。当Flash / AIR从操作系统获得或失去焦点时,所有EventDispatcher都会收到这些事件。

http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/events/EventDispatcher.html#event:deactivate

当您提供打开新窗口的链接并希望减少功能和加载(例如暂停和静音视频)然后在用户返回时恢复时,这非常有用。

答案 1 :(得分:1)

编辑:我意识到这可能不是你要求的确切内容,但我会保留它,以防它对任何寻找它的人都有帮助。另请注意,您可以在onbeforeunload事件中执行其他操作,这些操作通常在用户访问确认对话框之前可靠地执行,除非您的卸载例程过于复杂(在这种情况下您应该考虑改变您的设计)。


onbeforeunload让你中断页面卸载:

window.onbeforeunload = function(e) {
    // Browser will pop up a confirmation dialog, with some text before
    // and after your return string; try it in different browsers to
    // see how they behave.
    return 'String to confirm';
}

答案 2 :(得分:0)

有Body.onUnload,但我不确定它实际上有多可靠。

答案 3 :(得分:0)

我发现最接近的是javascript window.onunload事件。但是,您无法在Flex应用程序中真正监听此内容,因为在调用卸载方法时应用程序可能不再运行。我们已经用它来通过javascript发信号通知页面的其他部分,但应用程序已经卸载了,所以根据你需要做的事情,这可能已经足够了。

答案 4 :(得分:0)

问题是,当用户导航时你需要做什么?

如果您需要在服务器上执行操作,那么处理此问题的最佳方法是在swf初始化时打开Socket(),然后在用户导航时打开,该套接字将终止,服务器可以检测到并执行其他逻辑。

如果您需要执行客户端操作,例如保存SharedObject,那么您不能依赖插件的“最后一件事”事件,因为有很多途径可以关闭插件会话。在这种情况下,最好的办法是每隔几秒钟不断保存SharedObjects。