处理Flex 页面的后退/前进/刷新/关闭事件
浏览器刷新后,所以东西都要 重新加载,为避免用户出现误操作,我们可以做些相应的处理,当用户关闭窗口的时候,弹出提示对话框,用户确认后再关闭。
通过javascript 的 onbeforeunload 和 onunload 事件与 ActionScript 的addCallback方法 (如下边的“getUnsavedDataWarning();”方法)来实现监听:
1. 在 index.template.html 中增加javascript
- <script language=”JavaScript” type=”text/javascript”>
- //——————————————————————————————-
- // Specifies a function for the window’s onbeforeunload event
- // Call back to the getUnsavedDataWarning in our Flex app when the browser is about to unload
- //——————————————————————————————-
- //window.onbeforeunload = function()
- window.onbeforeunload = onbeforeunload_handler;
- function onbeforeunload_handler()
- {
- var warning=“”;
- var fxControl = document.${application} || window.${application};
- if ( fxControl )
- if ( typeof fxControl.getUnsavedDataWarning==“function”)
- warning = fxControl.getUnsavedDataWarning(); // This calls a function in our Flex app
- if ( warning != ” )
- return warning;
- else
- return void(0);
- }
- //——————————————————————————————-
- // Specifies a function for the window’s onunload event
- // Call back to the javascriptOnUnload in our Flex app when the browser unloads
- //——————————————————————————————-
- window.onunload = function()
- {
- var fxControl = document.${application} || window.${application};
- if ( fxControl )
- if ( typeof fxControl.javascriptOnUnload==“function”)
- fxControl.javascriptOnUnload(); // This calls a function in our Flex app
- }
- </script>
2.在 Flex 的 application 页面里加增一个addCallback, 在页面加载完后就addCallback:
- private const UNSAVED_DATA_WARNING:String = ‘You have unsaved changes. You will lose them if you continue.’;
- private function onCreationComplete():void {
- ExternalInterface.addCallback(“getUnsavedDataWarning”,
- function():String {
- return UNSAVED_DATA_WARNING;
- }
- );
- }
这样就可以防止 Flex 页面的意外后退/前进/刷新/关闭了。
From:
http://flexblog.faratasystems.com/?m=20061217
http://hi.baidu.com/%C7%E0%B5%BA%BD%F0%F6%CE/blog/item/349e34019acd2ed1277fb5b5.html