swfupload在IE9中不显示上传按钮的问题
问题描述:使用swfupload.js上传文件,在IE8、火狐、谷歌浏览器中显示正常,但是在IE9下不能显示上传按钮。 解决方法:打开swfupload.js文件找到307行开始的如下代码: // Private: getFlashHTML generates the object tag needed to embed the flash in to the document SWFUpload.prototype.getFlashHTML =?function?(flashVersion) { ????// Flash Satay object syntax: http://www.alistapart.com/articles/flashsatay ????return?['<object 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">', ????????????????'<param name="wmode" value="',?this.settings.button_window_mode,?'" />',208)"> ????????????????'<param name="movie" value="',(this.support.imageResize ?this.settings.flash_url :?this.settings.flash9_url),208)"> ????????????????'<param name="quality" value="high" />',208)"> ????????????????'<param name="allowScriptAccess" value="always" />',208)"> ????????????????'<param name="flashvars" value="'?+?this.getFlashVars() +?'" />',208)"> ????????????????'</object>'].join(""); }; ? 将其替换为: ? ? // Private: getFlashHTML generates the object tag needed to embed the flash in to the document SWFUpload.prototype.getFlashHTML =?function?(flashVersion) { ???? ? ????//处理IE9中不显示上传按钮的情况 ????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"'; ????} ????return?['<object',classid,?' id="',?this.settings.button_width,208)"> ????????????????'<param name="wmode" value="',208)"> ????????????????'<param name="movie" value="',208)"> ????????????????'<param name="quality" value="high" />',208)"> ????????????????'<param name="allowScriptAccess" value="always" />',208)"> ????????????????'<param name="flashvars" value="'?+?this.getFlashVars() +?'" />',208)"> ????????????????'</object>'].join(""); }; 注:以上代码在IE7、IE8、IE9、火狐(Firefox 11.0)、谷歌(Google Chrome 17.0.963.83)浏览器中测试运行正常。 说明:修改前后的属性this.support.imageResize,不同的版本可能没有该属性。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |