解决SwfUpload在IE10上不出现上传按钮

来源:互联网 发布:商务礼仪权威 知乎 编辑:程序博客网 时间:2024/05/29 18:38

       在系统测试过程中,发现使用了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了

[javascript] view plaincopyprint?
  1. SWFUpload.prototype.getFlashHTML = function (flashVersion) {  
  2.     // Flash Satay object syntax: http://www.alistapart.com/articles/flashsatay  
  3. var classid = "";  
  4. var Sys = {};  
  5. var ua = navigator.userAgent.toLowerCase();  
  6. if (window.ActiveXObject) {  
  7.     Sys.ie = ua.match(/msie ([\d.]+)/)[1];  
  8.     if (Sys.ie && Sys.ie.substring(0, 1) == "9" || Sys.ie.substring(0, 2) == "10") {  
  9.         classid = ' classid = "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"';  
  10.     }  
  11. }  
  12. return ['<object', classid, ' id="'this.movieName, '" type="application/x-shockwave-flash" data="', (this.support.imageResize ? this.settings.flash_url : this.settings.flash9_url), '" width="'this.settings.button_width, '" height="'this.settings.button_height, '" class="swfupload">',  
  13.                 '<param name="wmode" value="'this.settings.button_window_mode, '" />',  
  14.                 '<param name="movie" value="', (this.support.imageResize ? this.settings.flash_url : this.settings.flash9_url), '" />',  
  15.                 '<param name="quality" value="high" />',  
  16.                 '<param name="allowScriptAccess" value="always" />',  
  17.                 '<param name="flashvars" value="' + this.getFlashVars() + '" />',  
  18.                 '</object>'].join("");  
  19. };  


         保存,运行就可以看到效果了,完美!

0 0
原创粉丝点击