解决SWFUpload 在IE9下无法加载的问题

在一次发布的时候,用到了上传组件,没想到qa测出来在ie9下面swf打不开,ie9下面debug开启,显示请求swfupload.swf的时候请求被挂起了,点击上传没反映,等了很久大概有5分钟吧,挂起请求请求200,一下子出来了三个请求flash的,这时候点击上传就正常了。

搞了半天,在网上找到这篇文章,原来是ie9在作祟,可能与ie9对active空间的要求有关吧,需要注册一个classid。

郁闷,搞了两个小时才查出来。

转自:http://www.cnblogs.com/blackice/archive/2013/02/16/2913087.html

打开swfupload.js,找到

SWFUpload.prototype.getFlashHTML = function ()

给object加上一个classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000",就可以乐。

具体代码如下,需要判断一下,不然在Chrome下又显示不出为鸟。

?
SWFUpload.prototype.getFlashHTML = function  () {
     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" ) {
         classid = 'classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"' ;
     }
 
     // Flash Satay object syntax: http://www.alistapart.com/articles/flashsatay
     return  [ '<object ' , classid, ' id="' , this .movieName, '" type="application/x-shockwave-flash" data="' , this .settings.flash_url, '" width="' , this .settings.button_width, '" height="' , this .settings.button_height, '" class="swfupload">' ,
     '<param name="wmode" value="' , this .settings.button_window_mode, '" />' ,
     '<param name="movie" value="' , this .settings.flash_url, '" />' ,
     '<param name="quality" value="high" />' ,
     '<param name="menu" value="false" />' ,
     '<param name="allowScriptAccess" value="always" />' ,
     '<param name="flashvars" value="'  + this .getFlashVars() + '" />' ,
     '</object>' ].join( "" );
};
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值