ie9下 “__flash__removeCallback”未定義錯誤
阿新 • • 發佈:2019-01-03
使用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時,該函式還可用。