欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

ie9下关闭弹出窗口出现__flash__removeCallback未定义错误

程序员文章站 2022-07-10 15:15:21
使用swfupload作为上传组件,artdialog作为弹出窗口,在关闭弹出窗口时,出现“__flash__removecallback”未定义错误。而且是关了又出现。网...

使用swfupload作为上传组件,artdialog作为弹出窗口,在关闭弹出窗口时,出现“__flash__removecallback”未定义错误。而且是关了又出现。网上有些解决方案,主要就是说覆写“__flash__removecallback“函数的定义,这个在swfupload组件中已经有了:

// 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) {

}
};

可是在我这样的环境下无效。这个错误的解释就是flash对象在移除文档时,要调用这个回调函数,却找不到函数定义。查看了下artdialog的关闭流程,是html(“”),把内容置空。

问题可能出在这,内容置空flash对象也就被移除了。而定义有__flash__removecallback函数的js文件也被移除了。所以说找不到。解决方法就是,在关闭窗口前先移除flash对象。

直接移除包含flash对象的父对象。如div.remove();

所以主要的解决方法就是,一确保有上面那段函数定义,二确保移除flash时,该函数还可用。