flex监听浏览器关闭事件
当浏览器刷新或者手动关闭浏览器关闭按钮的时候,把当前的用户置为离线状态(其他客户端的当前用户标示为离线),
现在需要一个回调函数,不知道怎么去解决,浏览器关闭或者刷新,flex程序就要卸载了,怎么搞?求文章,求帮助!!
[解决办法]
window.close调用flex回调函数应该可以实现
[解决办法]
window.onbeforeunload = function beforeclose() {
var flexObj = '';
var obj = document.getElementById("FlashObj");//这是你的html中Object的ID
if (obj) {
try {
flexObj = FlashObj.checkExit();//这是调用flex中的函数
}
catch (e) {
}
}
if (flexObj != '') {
return flexObj;
}
else { return; }
}
[解决办法]
你说的这个功能 我之前也有做过
不能 通过 页面关闭 -》js-》as 这样子
当 页面关闭 已经来不及 让as去调用后台了
所以 你要在js上用Ajax 去做
不能用flex 去实现
离线还有一点还要在 session关闭方法里面 实现一遍离线状态防止非法关闭
[解决办法]
监听onbeforeunload或onunload
[解决办法]
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 "";' +
'}\')';
flash.external.ExternalInterface.call(jsStr);
flash.external.ExternalInterface.addCallback('windowCloseHandler', externalWindowCloseHandler);
}
protected function externalWindowCloseHandler():void
{
...
}