Flex监测浏览器关闭
在flex应用程序出事化之前(如creationComplete)加入:
flash.external.ExternalInterface.addCallback('windowCloseHandler',externalWindowCloseHandler);
回调函数:
function externalWindowCloseHandler():void {
trace("关闭浏览器");//关闭前做一些事情
Alert.show("关闭浏览器");
}
在html页面的javascript脚本里加入:没有返回值所以屏蔽掉了弹出框,如果需要弹出框可以加上
window.onbeforeunload = onbeforeunloadHandler; //添加响应函数
function onbeforeunloadHandler()
{
var swfRef = document.Test|| window.Test; //获取swf的引用
if ( swfRef ) {
swfRef.windowCloseHandler(); // 调用Flash中的windowCloseHandler函数
}
方法二:在as中写javascript
public function creationCompleteHandler(event:FlexEvent):void {
if (flash.external.ExternalInterface.available) {
var javascript:String;
javascript = 'eval(\'window.onbeforeunload = onbeforeunloadHandler;' +
'function onbeforeunloadHandler(){' +
'var swfRef = document.' + FlexGlobals.topLevelApplication.className + '||window.' +
FlexGlobals.topLevelApplication.className + ';' + 'swfRef.windowCloseHandler();' +'}\')';
flash.external.ExternalInterface.call(javascript);
flash.external.ExternalInterface.addCallback('windowCloseHandler', externalWindowCloseHandler);
trace("javascript:" + javascript);
}
}
//关闭浏览器时的清理工作
public function externalWindowCloseHandler():void {
//移除监听
flash.external.ExternalInterface.call('eval(\'window.onbeforeunload = null\')');
trace("浏览器关闭");
}
浙公网安备 33010602011771号