IE标准模式下关闭带Swfupload插件的ArtDialog时报"__flash__removeCallback"未定义错误
来源:互联网 发布:mediainfo linux 安装 编辑:程序博客网 时间:2024/06/04 19:07
问题描述
使用swfupload作为上传组件,artdialog作为弹出窗口,在关闭弹出窗口时,提示“__flash__removeCallback”未定义错误。
原因
swfupload中的flash对象销毁前时会回调__flash__removeCallback函数,该函数的定义如下:
// Fix Flashes own cleanup code so if the SWFMovie was removed from the page// it doesn't display errors.window["__flash__removeCallback"] = function (instance, name) {try {if (instance) {instance[name] = null;}} catch (flashEx) {}};关闭artdialog窗口时,页面的js等内容也随iframe一起销毁掉,故找不到__flash__removeCallback函数的定义。
解决方法
方法一:在关闭artdialog前,直接调用swfupload中的cleanUp函数清除影片绑定的函数,此种方法逻辑上可行但本人测试失败,测试代码如下:
var movieElement = swfupload.getMovieElement();swfupload.cleanUp(movieElement);art.dialog.close();
cleanUp函数定义如下:
// Private: removes Flash added fuctions to the DOM node to prevent memory leaks in IE.// This function is called by Flash each time the ExternalInterface functions are created.SWFUpload.prototype.cleanUp = function (movieElement) {// Pro-actively unhook all the Flash functionstry {if (this.movieElement && typeof(movieElement.CallFunction) === "unknown") { // We only want to do this in IEthis.debug("Removing Flash functions hooks (this should only run in IE and should prevent memory leaks)");for (var key in movieElement) {try {if (typeof(movieElement[key]) === "function") {movieElement[key] = null;}} catch (ex) {}}}} catch (ex1) {}// Fix Flashes own cleanup code so if the SWFMovie was removed from the page// it doesn't display errors.window["__flash__removeCallback"] = function (instance, name) {try {if (instance) {instance[name] = null;}} catch (flashEx) {}};};
方法二:在关闭artdialog前,直接移除movieElement对象,测试失败。
var movieElement = swfupload.getMovieElement();$(movieElement).remove();
方法三:在关闭artdialog前移除movieElement对象的父对象,测试成功。
var movieElement = swfupload.getMovieElement();$(movieElement).prarent().remove();
0 0
- IE标准模式下关闭带Swfupload插件的ArtDialog时报"__flash__removeCallback"未定义错误
- ie9下 “__flash__removeCallback”未定义错误
- __flash__removeCallback未定义错误的解决方案
- IE7下flash报__flash__removeCallback的js错误
- 解决ie模式下JSON未定义
- IE兼容模式 下 JSON未定义
- artdialog插件的使用方法
- artdialog在ie下点击关闭会嵌入到页面中的解决办法
- Crystal Reports运行时报’bobj未定义’的错误
- [水晶报表]Crystal Reports运行时报’bobj未定义’的错误
- 在IE兼容模式下 提示JSON未定义
- artDialog插件的详细使用
- 使用Firebug的console导致IE提示对象未定义错误
- IE下的插件
- IE下SCRIPT5009: “JSON”未定义
- IE下SCRIPT5009: “JSON”未定义
- 修复JsRender在IE下报console未定义的问题
- 解决在IE下“JSON”未定义的问题
- 2014 年度 Git@OSC【非GitHub】 最热门的 50 个项目
- python 进程间共享数据
- 移位运算
- Response.ContentType
- HDU 1003 MAX SUM 贪心
- IE标准模式下关闭带Swfupload插件的ArtDialog时报"__flash__removeCallback"未定义错误
- Ext.Grid常用控件的属性与方法
- Ant打包jar,参数名变为无意义的arg0,arg1,Java代码提示参数名称无意义
- No value was provided for the parameter ‘appIdName’ when provisioning
- !!!Android开源项目大全 - 开发工具和测试工具
- 第三章思维导图
- 拆分Cocos2D-Xplist中的所有图片另存为单张png
- iphone通过itms-services协议来安装软件,显示证书无,效解决方法
- 高斯滤波器及其实现