uploadify(或swfupload)刷新頁面時IE下不斷報JS Error的bug的處理

本人在使用uploadify 3.2做上傳頁面時,遇到一個問題 在加載完上傳按鈕後加載使用load其他頁面的時候出現不斷報JS Error

 

try { document.getElementById("SWFUpload_0").SetReturnValue(__flash__toXML(SWFUpload.instances["SWFUpload_0"].testExternalInterface()) ); } catch (e) { document.getElementById("SWFUpload_0").SetReturnValue("<undefined/>"); }

循環出現如下錯誤:

SCRIPT5007: 無法設置屬性“SetButtonTextPadding”的值: 對象爲 null 或未定義
admin.aspx, 行48 字符3
SCRIPT5007: 無法設置屬性“SetButtonTextStyle”的值: 對象爲 null 或未定義
admin.aspx, 行48 字符3
SCRIPT5007: 無法設置屬性“SetButtonAction”的值: 對象爲 null 或未定義
admin.aspx, 行48 字符3
SCRIPT5007: 無法設置屬性“SetButtonDisabled”的值: 對象爲 null 或未定義
admin.aspx, 行48 字符3
SCRIPT5007: 無法設置屬性“SetButtonCursor”的值: 對象爲 null 或未定義
admin.aspx, 行48 字符3
SCRIPT5007: 無法設置屬性“TestExternalInterface”的值: 對象爲 null 或未定義
admin.aspx, 行48 字符3
SCRIPT5007: 無法獲取屬性“SetReturnValue”的值: 對象爲 null 或未定義
admin.aspx, 行1 字符139
SCRIPT5007: 無法獲取屬性“SetReturnValue”的值: 對象爲 null 或未定義
admin.aspx, 行1 字符181

在讀了 Fix SWFUpload destroy時IE下不斷報JS Error的bug(http://my.opera.com/justnewbee/blog/fix-swfupload-destroy-ie-js-error)後也反覆摸索解決辦法消耗不少精力,後來想,既然是uploadify頁面元素加載後,頁面換了,而IE下js無法正常銷燬swfupload元素,而使得flash中的錯誤處理代碼報錯就是,在閱讀技術資料的時候我發現swfupload和uploadfy有destroy,那我們手工銷燬就是,於是我在每次刷新頁面前進行如下檢查,如果元素存在就銷燬

if ($('#file_upload').length > 0) { //注意jquery下檢查一個元素是否存在必須使用 .length >0 來判斷

     $('#file_upload').uploadify('destroy');

}銷燬

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