解決SwfUpload在IE10上不出現上傳按鈕
阿新 • • 發佈:2019-02-11
在系統測試過程中,發現使用了SwfUpload實現的無重新整理上傳功能,在IE10上竟然無法使用了,難道SwfUpload不支援嗎?還是需要換一種實現方式呢?最後通過了解SwfUplad.JS檔案發現,我們是可以修改的,讓其支援IE10,具體解決方案如下:
開啟SwfUpload.js,在js檔案中找到// Private: getFlashHTML generates the object tag needed to embed the flash in to the document”這行和“// Private: getFlashVars builds the parameter string that will be passed”和這行,然後把中間的用如下程式碼替換就OK了
- SWFUpload.prototype.getFlashHTML = function (flashVersion) {
- // Flash Satay object syntax: http://www.alistapart.com/articles/flashsatay
- var classid = "";
- var Sys = {};
- var ua = navigator.userAgent.toLowerCase();
- if (window.ActiveXObject) {
-
Sys.ie = ua.match(/msie ([\d.]+)/)[1];
- if (Sys.ie && Sys.ie.substring(0, 1) == "9" || Sys.ie.substring(0, 2) == "10") {
- classid = ' classid = "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"';
- }
- }
-
return ['<object', classid, ' id="', this.movieName, '" type="application/x-shockwave-flash" data="', (this.support.imageResize ?
- '<param name="wmode" value="', this.settings.button_window_mode, '" />',
- '<param name="movie" value="', (this.support.imageResize ? this.settings.flash_url : this.settings.flash9_url), '" />',
- '<param name="quality" value="high" />',
- '<param name="allowScriptAccess" value="always" />',
- '<param name="flashvars" value="' + this.getFlashVars() + '" />',
- '</object>'].join("");
- };
儲存,執行就可以看到效果了,完美!