[轉]Flash/Flex监听浏览器的关闭事件

FROM : http://blog.ityao.com/archives/581

 

 

如果想用Flash/Flex监听浏览器的关闭事件,
可以通过JavaScript的window.onbeforeunload事件进行监听
然后JS调用Flash中的函数。
在swf所在页面的JavaScript中添加如下代码
JS中代码:(这里设定swf文件名为TestFlash)
window.onbeforeunload = onbeforeunloadHandler; //添加响应函数
function onbeforeunloadHandler()
{
var swfRef = document.TestFlash|| window.TestFlash; //获取swf的引用
if ( swfRef )  {
warning = swfRef.windowCloseHandler(); // 调用Flash中的windowCloseHandler函数
return “Are you sure to close this page?”;
}
}
AS中代码:(在程序初始化的函数中添加,例如Flex的creationComplete事件中)
if(flash.external.ExternalInterface.available){ flash.external.ExternalInterface.addCallback(‘windowCloseHandler’,externalWindowCloseHandler);
//使用ExternalInterface向JS中添加调用函数
}
/*
* 告诉服务器,该flash已经被关闭
*/
protected function externalWindowCloseHandler():void{

//use HttpService in Flex
var http:HTTPService = new HTTPService();
http.url = ‘http://localhost/testphp/index.php?from=flexcloseByHTTPService’;
http.send();
//use URLLoader in AS3
var request:URLRequest = new URLRequest(‘http://localhost/testphp/index.php?                from=flexcloseByUrlLoader’);
var urlLoader:URLLoader = new URLLoader();
urlLoader.load(request);
}
Flex中可以在FlashBuilder的HTML模板上添加JS代码
修改html-template中的index.template.html文件
在其中添加JS代码:
window.onbeforeunload = onbeforeunloadHandler; //添加响应函数
function onbeforeunloadHandler()
{
var swfRef = document.${application}|| window.${application};   //获取swf的引用
if ( swfRef )  {
warning = swfRef.windowCloseHandler();    // 调用Flash中的windowCloseHandler函数
return “Are you sure to close this page?”;
}
}
在AS中直接注入JS代码
如果不想更改HTML文件,也可以在AS中直接书写JS代码,注入到HTML文档中
if(flash.external.ExternalInterface.available){
var jsStr:String;
jsStr =
‘eval(\’window.onbeforeunload = onbeforeunloadHandler;’ +
‘function onbeforeunloadHandler(){‘ +
‘var swfRef = document.’+FlexGlobals.topLevelApplication.className+’ || window.’+FlexGlobals.topLevelApplication.className+’;’ +
‘swfRef.windowCloseHandler();’ +
‘return “Are you sure to close this page?”;’ +
‘}\’)';
flash.external.ExternalInterface.call(jsStr);

flash.external.ExternalInterface.addCallback(‘windowCloseHandler’,externalWindowCloseHandler);
}
移除该监听
只要设置window.οnbefοreunlοad=null即可
AS中可以这样写
flash.external.ExternalInterface.call(‘eval(\’window.onbeforeunload = null\’)');
flash.external.ExternalInterface.call(‘eval(\’location.reload();\’)');        //再执行刷新浏览器的命令
源文件 :TestFlex.zip
From - http://blog.ityao.com/archives/581

 

 

转载于:https://www.cnblogs.com/Athrun/archive/2010/11/08/1871604.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/435377.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MRP的数据处理-华北水利水电大学(作业)

这是之前学经济方向的同学让我利用C语言写的关于MRP的数据处理的过程,在用C语言写的过程中利用了动态数组使得时区不仅限于这8时区,有相关的同学可以进行查看 代码运行结果如下(该代码可以自动调整参数,时区可以设置8天以上&#…

LSGO软件技术团队2015~2016学年第九周(1026~1101)总结

简述: LSGO软件技术团队成立于2010年10月,主要从事的应用方向为互联网与移动互联网(UI设计,前端开发,后台开发),地理信息系统;研究方向为数据分析与计算机视觉。成立几年来为学校培养…

VXWORKS 几种定时机制

编程过程中,出于需要,大家或多或少要用到定时/延时。VxWorks下提供了几种定时/延时机制,根据收集的一些资料和VxWorks相关文档,在学习和上机实验的基础上,对它们的使用以及我所遇到的问题做一个总结,希望对…

git 每次都要输入用户名密码_Git向GitHub提供代码

一.前期准备工作首先建立一个GitHub账号,这个账号和密码邮箱要记住,如果忘记了也可以找回,会麻烦一些。在官网下载一个Git,可以自己根据默认进行安装,这样也是没有问题的,如果系统盘的空间不够大,可以安装到…

C# Socket 入门5 UPD 结构体 与 C++ 通信

1. 同样&#xff0c; 我们先看看这一个比简单的 结构体 代码 usingSystem;usingSystem.Collections.Generic;usingSystem.Text;usingSystem.Runtime.InteropServices;namespaceCSharp_Socket_5{ ///<summary>///通信消息格式 ///</summary>[Serializable] …

坐标点获取并显示

在工作当中经常遇到根据名称获得相应坐标的情况,我们可以利用百度地图api来获取对应地点的坐标。 例如: 目前我们手中有需要获取大学坐标的名称,想要获取其坐标,并将其进行可视化显示。 以下是要查询的大学名称(现实当中可以是几千条数据) 以下是我们查询的结果 …

LSGO软件技术团队2015~2016学年第十周(1102~1108)总结

团队简述&#xff1a; LSGO软件技术团队成立于2010年10月&#xff0c;主要从事的应用方向为互联网与移动互联网&#xff08;UI设计&#xff0c;前端开发&#xff0c;后台开发&#xff09;&#xff0c;地理信息系统&#xff1b;研究方向为数据分析与计算机视觉。成立几年来为学校…

matlab中GUI的属性检查器中的XLimMode是什么_如何在Matlab中使用GUI做一个简易音乐播放器? ---- (二)GUIDE...

咕咕怪由于昨天有重要的事情所以咕了一天的文章 &#xff08;感觉写得挺基础的&#xff0c;对各个部分有一定了解的童鞋可以直接跳过了解的部分用Matlab做一个app有几种办法呢&#xff1f;同样的&#xff0c;帮助文档告诉了我们答案&#xff1a;三种。英语好的童鞋看完这张图应…

VxWorks下几种定时延时方法的小结

1 taskDelay taskdelay()提供了一个简单的任务睡眠机制&#xff0c;也常用于需要定时/延时机制的应用中。 它的格式是 STATUS taskDelay(int ticks /* number of ticks to delay task */ )&#xff0c; 可以看出使用该函数实现延时的单位为tick&#xff08;一般系统中一个…

C#中ToString格式大全

C 货币 2.5.ToString("C") &#xffe5;2.50 D 十进制数 25.ToString("D5") 00025 E 科学型 25000.ToString("E") 2.500000E005 F 固定点 25.ToString("F2") 25.00 …

DDMMSS.SS转为DD

有时候甲方会给我们一些坐标&#xff0c;但是在arcgis中是无法直接显示的 这是因为该格式是DDMMSS.SS的格式&#xff0c;而arcgis支持的是DD格式的&#xff0c;其中dd单位是度&#xff0c;mm单位是分&#xff0c;ss.ss单位是秒 所以要在arcgis中显示我们需要将其转换为DD的格式…

LSGO软件技术团队2015~2016学年第十一周(1109~1115)总结

团队简述&#xff1a; LSGO软件技术团队成立于2010年10月&#xff0c;主要从事的应用方向为互联网与移动互联网&#xff08;UI设计&#xff0c;前端开发&#xff0c;后台开发&#xff09;&#xff0c;地理信息系统&#xff1b;研究方向为大数据处理与机器学习。成立几年来为学校…

maven springboot 除去指定的jar包_SpringBoot的运行机制

SpringBoot打包机制先看一眼spring-boot的maven插件打包后的target目录&#xff1a;其中有一个.jar.original的文件&#xff0c;一个.jar文件&#xff0c;其中.jar.original才是原始的jar包&#xff0c;而.jar文件是经过spring-boot的maven插件处理过后的jar&#xff0c;spring…

VxWorks中Timer机制

[摘要] Timer是实时操作系统的一个重要组成部分。本文结合近阶段的学习和实验情况&#xff0c;对VxWorks中的时间函数和定时器作了一些探讨。主要介绍了Timer的机制&#xff0c;相关的函数&#xff0c;并给出了一些具体的例子。 一. Tick Tick是指每秒中定时器中断的次数。POS…

LINK : fatal error LNK1104: 无法打开文件“LIBCD.lib”

出现这类问题一般是由于所运行的项目是VC6&#xff08;或者vs2003)创建的&#xff0c;而后又用VS2005或者更高版本工具打开项目导致的&#xff0c;原因都是因为LIBCD.lib文件被更改了.要解决问题的话&#xff0c;只要在链接设置那里忽略它就没问题了。 解决办法是&#xff1a; …

TVDI计算流程

TVDI计算过程 下载数据的网站: https://ladsweb.modaps.eosdis.nasa.gov/search/ 所需数据modis的16天的ndvi数据(MOD13A2)和每8天的LST数据(MOD11A2) 北半球选择Terra,南半前选择Aqua,因为两个卫星旋转是相对的,太阳高度角不同,会有些许误差 利用modis处理工具(MRT)…

LSGO软件技术团队2015~2016学年第十二周(1116~1122)总结

团队简述&#xff1a; LSGO软件技术团队成立于2010年10月&#xff0c;主要从事的应用方向为互联网与移动互联网&#xff08;UI设计&#xff0c;前端开发&#xff0c;后台开发&#xff09;&#xff0c;地理信息系统&#xff1b;研究方向为大数据处理与机器学习。成立几年来为学校…

POSIX定时器

最强大的定时器接口来自POSIX时钟系列&#xff0c;其创建、初始化以及删除一个定时器的行动被分为三个不同的函数&#xff1a;timer_create()(创建定时器)、timer_settime()(初始化定时器)以及timer_delete(销毁它)。 创建一个定时器&#xff1a; int timer_create(clockid_t …

python append函数_让你python代码更快的3个小技巧!速度提高了一倍还多

大家好&#xff01;今天呢&#xff0c;我们来聊一聊如何加速你的 python 代码。Python 语言的优点可以列举出许多&#xff0c;语法简单易懂、模块丰富、应用广泛等等。但是世界上没有有完美的东西&#xff0c;python 一个明显缺点就是运行速度慢&#xff0c;至少跟 C 语言没法比…

扣扣保镖我喜欢

扣-扣-保-镖还是挺好用的&#xff0c;上次360召回之后&#xff0c;网上的下载链接都失效了&#xff0c;不过今天偶然发现我的硬盘上还有一份。。就打开试试&#xff0c;结果没事的哈。 qq版本&#xff1a;qq2010正式版 sp2.1(1861) 趣盘下载地址&#xff1a;http://oskycar.qup…