在最近开发的一个FLEX项目中对于浏览器关闭时,需要做一些清理工作,该清理工作在正常情况下保证能运行就行了,要求不是太高。

因此在网上找了一些方法,经过实际测试确实可行,记录下来备查。

该方法可以完全不用在JS中写代码,值需要在FLEX中写即可,代码如下:

            private function insertPageExit():void{
var browerFunc:String = "document.insertScript = function () " +   
                "{ " +   
                    "window.onunload= function() " +   
"{ FlexObjID.beforeBrowerExit();} " +   
                "} ";
ExternalInterface.call(browerFunc);   
ExternalInterface.addCallback("beforeBrowerExit",beforeBrowerExit);  
}
public function beforeBrowerExit():void { 
//FLEX中做自己需要清理的工作
} 

说明:FlexObjID为HTML中的flash对象ID。

该方法是写在window.onunload事件上,也可以写在window.onbeforeunload事件上。代码如下:

            private function insertPageExit():void{
var browerFunc:String = "document.insertScript = function () " +
"{ " +
"window.onbeforeunload= function() " +
"{ FlexObjID.beforeBrowerExit();return '你是否要关闭浏览器?';} " +
"} ";
ExternalInterface.call(browerFunc);
ExternalInterface.addCallback("beforeBrowerExit",beforeBrowerExit);
}
public function beforeBrowerExit():void {
//FLEX中做自己需要清理的工作
}

说明:onbeforeunload事件必须要有返回值,否则会不执行,并且浏览器会自动弹出一个确认对话框,可以取消关闭操作。

这两个方法在浏览器中调用顺序是:先onbeforeunload->onunload。

一定注意:该方法在IE,Chrome,FF测试都通过,但是在360浏览器上不支持。请注意。

FLEX监视浏览器关闭事件的更多相关文章

  1. js捕捉浏览器关闭事件-兼容几乎所有浏览器

    很多时候我们都在困扰,如何捕获浏览器关闭事件,网上虽然有很多方法,但都不理想,后来终于找到了一个很好地实现方法,大家可以试试哦,支持几乎所有的浏览器 <script type="tex ...

  2. js 监控浏览器关闭事件

    代码如下: <!DOCTYPE html> <html> <head> <title>监控浏览器关闭事件</title> </head ...

  3. js关闭浏览器窗口及检查浏览器关闭事件

    js关闭浏览器窗口,不弹出提示框.支持ie6+,火狐,谷歌等浏览器,下面以一个示例为大家详细介绍下具体的实现方法,感兴趣的朋友可以参考下   js关闭浏览器窗口 js关闭浏览器窗口,不弹出提示框.支持 ...

  4. js监听浏览器关闭事件

    html : <HTML>  <HEAD>  <title>test</title>  </HEAD>  <body onbefore ...

  5. 获取IE浏览器关闭事件

    //关闭浏览器时才会触发此操作,刷新页面不执行 //n 检测鼠标相对于用户屏幕的水平位置 - 网页正文部分左:求出鼠标在当前窗口上的水平位置(参照:当前窗口右上角为0.0坐标) //m 网页正文全文宽 ...

  6. js关闭浏览器窗口事件

    js关闭浏览器窗口 js关闭浏览器窗口,不弹出提示框.支持ie6+,火狐,谷歌等浏览器. <html> <head /> <body> <script typ ...

  7. 浏览器关闭或刷新事件--window.onbeforeunload

    window.onunload=function(){ //不可以阻止浏览器的刷新或者关闭 return false; } window.onbeforeunload=function(){ //可以 ...

  8. Flex 监听浏览器关闭

    在creationComplete的事件中,添加如下: if(ExternalInterface.available)//外部接口是否可用    {     var js:String= " ...

  9. 监听微信端,手机端,ios端的浏览器返回事件,pc端关闭事件

    直接上代码了,可以监听微信端,手机端,iOS端的浏览器返回事件,关闭事件不支持 当进入该页面,我们就给这个history压入一个本地的连接.当点击返回.后退及上一页的操作时,就进行监听,在监听代码中实 ...

随机推荐

  1. 团队作业-第一周-NABCD竞争性需求分析

      1.  Need 需求 随着科技信息的发展,传统的课堂点名亟待步入信息处理的轨道,移动校园课堂点名软件恰好的切入了这个需求点,市场中词类软件也为数不多,因此需求也是比较强烈. 2. Approac ...

  2. mac liteIDE调试配置

    http://studygolang.com/articles/1636 brew install https://raw.github.com/Homebrew/homebrew-dupes/mas ...

  3. HTML - DOCTYPE

    HTML - DOCTYPE HTML 5 doctype <!DOCTYPE html> HTML4.01 Based on SGML. so the browser need the ...

  4. python解析RSS(feedparser)

    虽然说当今的博客已经不像前几年那么火了,但是RSS还是一项很有创造性和实用性的东西.RSS 是用于分发 Web 站点上的内容的摘要的一种简单的 XML 格式.它能够用于共享各种各样的信息.关于RSS的 ...

  5. 1080P、720P、4CIF、CIF所需要的理论带宽

    转自:http://blog.sina.com.cn/s/blog_64684bf30101hdl7.html 在视频监控系统中,对存储空间容量的大小需求是与画面质量的高低.及视频线路等都有很大关系. ...

  6. [CentOS]安装软件:/lib/ld-linux.so.2: bad ELF interpreter解决

    转自:http://blog.csdn.net/wanglei2258/article/details/24961233 [CentOS]安装软件:/lib/ld-linux.so.2: bad EL ...

  7. java 大数计算

    这几天做了几道用大数的题,发现java来做大数运算十分方便.对acmer来说是十分实用的 1.valueOf(parament); 将参数转换为制定的类型 比如 int a=3; BigInteger ...

  8. win7,vs2010,asp.net项目中修改外部js文件,在调试时加载的还是旧文件

    win7,vs2010,asp.net项目中修改外部js文件,在调试时加载的还是旧文件 我杀过 w3wp.exe和asp.net_state的进程,重启 iis admin的服务,都还是不行. 只是把 ...

  9. 原生Ajax写法(GET)

    ajax的GET提交方式的原生代码: var xhr = null; if(window.XMLHttpRequest){ xhr = new XMLHttpRequest(); }else if(w ...

  10. Myeclipse中创建Maven工程的时候没有 webapp-javaee6

    1. http://mvnrepository.com/artifact/org.codehaus.mojo.archetypes/webapp-javaee6/1.5 中有描述