ie9下關閉彈出窗口出現__flash__removeCallback未定義錯誤

在關閉彈出窗口時,出現__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時,該函數還可用。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章