最近在工作中遇到文件上传在ie下没有反应的问题。于是对ajaxfileupload文件上传进行了学习。ajaxfileupload上传没有反应可能是两方面造成:

1.ie版本升级ajaxfileupload代码不兼容,解决方案,修改ajaxfileupload代码

把代码

if(window.ActiveXObject) {  
    var io = document.createElement('<iframe id="' + frameId + '" name="' + frameId + '" />');  
     if(typeof uri== 'boolean'){  
         io.src = 'javascript:false';  
     }  
     else if(typeof uri== 'string'){  
         io.src = uri;  
     }  
 }

修改成
if(window.ActiveXObject) {  
   if(jQuery.browser.version=="9.0" || jQuery.browser.version=="10.0"){  
        var io = document.createElement('iframe');  
        io.id = frameId;  
        io.name = frameId;  
    }else if(jQuery.browser.version=="6.0" || jQuery.browser.version=="7.0" || jQuery.browser.version=="8.0"){  
        var io = document.createElement('<iframe id="' + frameId + '" name="' + frameId + '" />');  
        if(typeof uri== 'boolean'){  
            io.src = 'javascript:false';  
        }  
        else if(typeof uri== 'string'){  
            io.src = uri;  
        }  
    }  
}

如果你的ajaxfileupload.js已经修改过,上传依然不执行,那就看第二种方法

2.jquery版本太高,不支持browser对象造成

经过查阅 jQuery 从 1.9 版开始,移除了 $.browser 和 $.browser.version , 取而代之的是 $.support 。

解决这一问题有两种方式:第一、更换低版本jquery,缺点其他插件可能回依赖高版本。

第二、在ajaxfileupload中加入一下兼容性代码

(function(jQuery){

if(jQuery.browser) return;

jQuery.browser = {}; 
jQuery.browser.mozilla = false; 
jQuery.browser.webkit = false; 
jQuery.browser.opera = false; 
jQuery.browser.msie = false;

var nAgt = navigator.userAgent; 
jQuery.browser.name = navigator.appName; 
jQuery.browser.fullVersion = ''+parseFloat(navigator.appVersion); 
jQuery.browser.majorVersion = parseInt(navigator.appVersion,10); 
var nameOffset,verOffset,ix;

// In Opera, the true version is after "Opera" or after "Version" 
if ((verOffset=nAgt.indexOf("Opera"))!=-1) { 
jQuery.browser.opera = true; 
jQuery.browser.name = "Opera"; 
jQuery.browser.fullVersion = nAgt.substring(verOffset+6); 
if ((verOffset=nAgt.indexOf("Version"))!=-1) 
jQuery.browser.fullVersion = nAgt.substring(verOffset+8); 

// In MSIE, the true version is after "MSIE" in userAgent 
else if ((verOffset=nAgt.indexOf("MSIE"))!=-1) { 
jQuery.browser.msie = true; 
jQuery.browser.name = "Microsoft Internet Explorer"; 
jQuery.browser.fullVersion = nAgt.substring(verOffset+5); 

// In Chrome, the true version is after "Chrome" 
else if ((verOffset=nAgt.indexOf("Chrome"))!=-1) { 
jQuery.browser.webkit = true; 
jQuery.browser.name = "Chrome"; 
jQuery.browser.fullVersion = nAgt.substring(verOffset+7); 

// In Safari, the true version is after "Safari" or after "Version" 
else if ((verOffset=nAgt.indexOf("Safari"))!=-1) { 
jQuery.browser.webkit = true; 
jQuery.browser.name = "Safari"; 
jQuery.browser.fullVersion = nAgt.substring(verOffset+7); 
if ((verOffset=nAgt.indexOf("Version"))!=-1) 
jQuery.browser.fullVersion = nAgt.substring(verOffset+8); 

// In Firefox, the true version is after "Firefox" 
else if ((verOffset=nAgt.indexOf("Firefox"))!=-1) { 
jQuery.browser.mozilla = true; 
jQuery.browser.name = "Firefox"; 
jQuery.browser.fullVersion = nAgt.substring(verOffset+8); 

// In most other browsers, "name/version" is at the end of userAgent 
else if ( (nameOffset=nAgt.lastIndexOf(' ')+1) < 
(verOffset=nAgt.lastIndexOf('/')) ) 

jQuery.browser.name = nAgt.substring(nameOffset,verOffset); 
jQuery.browser.fullVersion = nAgt.substring(verOffset+1); 
if (jQuery.browser.name.toLowerCase()==jQuery.browser.name.toUpperCase()) { 
jQuery.browser.name = navigator.appName; 


// trim the fullVersion string at semicolon/space if present 
if ((ix=jQuery.browser.fullVersion.indexOf(";"))!=-1) 
jQuery.browser.fullVersion=jQuery.browser.fullVersion.substring(0,ix); 
if ((ix=jQuery.browser.fullVersion.indexOf(" "))!=-1) 
jQuery.browser.fullVersion=jQuery.browser.fullVersion.substring(0,ix);

jQuery.browser.majorVersion = parseInt(''+jQuery.browser.fullVersion,10); 
if (isNaN(jQuery.browser.majorVersion)) { 
jQuery.browser.fullVersion = ''+parseFloat(navigator.appVersion); 
jQuery.browser.majorVersion = parseInt(navigator.appVersion,10); 

jQuery.browser.version = jQuery.browser.majorVersion; 
})(jQuery);

就此完美解决

解决 IE下ajaxfileupload不兼容的问题相关推荐

  1. 解决ie8下background-size不兼容问题

    如果容器大小与背景图大小一致,页面显示无问题,如果不一致,则会出现问题,background-size失效,解决方法: background: url(../img/img.png) no-repea ...

  2. 解决vc 6在vista下的一些兼容问题

    解决vc 6在vista下的一些兼容问题 虽然vs系列的2008sp1版都出了,但是vs 2003以后的版本大多是都是在.Net上做修改,对我们vc程序员使用的MFC的修改很少.所以,许多VC程序员还 ...

  3. Ubuntu 16.04下用Wine运行的软件出现方块的解决思路(应该是兼容现在所有平台的Wine碰到这个的问题)

    Ubuntu 16.04下用Wine运行的软件出现方块的解决思路(应该是兼容现在所有平台的Wine碰到这个的问题) 参考文章: (1)Ubuntu 16.04下用Wine运行的软件出现方块的解决思路( ...

  4. windows下修改黑苹果config_【黑苹果】解决linux和黑苹果下usb无线网卡兼容问题

    黑苹果* 简单的说,就是在自己的电脑上安装苹果系统(MAC OS).但由于苹果公司的软硬件限制,导致装系统这么一个在WIN系统中平常的事情,变成很多极客爱好者的专业.比如,我们的毛老师- 上面这个配置 ...

  5. 万能方法解决linux和黑苹果下usb无线网卡兼容问题

    不管是安装linux还是黑苹果,都有三大卡(声卡,显卡,网卡)的驱动问题摆在面前,问题面前人人平等,不管是新手老手,都有可能在其中任何一个或多个卡上面摔跟头. 在这三大卡中,尤以网卡首当其冲,因为网卡 ...

  6. 解决不同浏览器的css兼容问题

    在网站设计的时候,应该注意css样式兼容不同浏览器问题,特别是对完全使用DIV CSS设计的网,就应该更注意IE6 IE7 FF对CSS样式的兼容,不然,你的网乱可能出去不想出现的效果! 所有浏览器 ...

  7. win7冒险岛java,win7玩冒险岛不兼容怎么办?解决win7玩冒险岛不兼容的方法

    冒险岛是一款经得起考验的游戏,从2004年上市以来,愉悦了千千万万的玩家,它曾获得2009和2010两届十大最受欢迎休闲网络游戏奖,它的趣味性不必再说,绝对是很多玩家小时候的经典回忆,最近有用户反映在 ...

  8. 运维经验分享(三)-- 解决Ubuntu下crontab不能正确执行脚本的问题

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://dgd2010.blog.51cto.com/1539422/1676490 运维 ...

  9. 记:一次单板的意外串口异常解决(下)——PC端

    0x00前言 写下这篇文章主要目的是总结一下最近调试的一块单板遇到的,关于串口方面的一些问题.本文将会分为上下两篇,这篇为下篇,主要讲述的是: 串口接在PC端时出现意外的接收数据错误 阅读本文,您可能 ...

最新文章

  1. Collection集合--ArrayList源码读后感总结
  2. 一个很有借鉴价值的编程故事(转)
  3. Use tcode ST01 to log authorization check
  4. centos7 安装rabbitMQ3.6.6
  5. 除了修改WEBCONFIG会导致WEB服务重启外,还有其他的什么操作会导致重启?
  6. 技术干货 | mPaaS 框架下如何使用 Crash SDK 对闪退进行分析?
  7. python删除一个文件_Python 实现一个小功能: 删除某路径下文件及文件夹的脚本...
  8. bat截取字符串[转]
  9. How-to: Tune Your Apache Spark Jobs (Part 1)
  10. [转载] python 字符串方法大全
  11. C/C++/JAVA内存布局
  12. 晶体管放大电路与Multisim仿真学习笔记
  13. MikroTik RB750r2/RB750gr3 操作记录
  14. 吉客云与金蝶云星空集成方案(吉客云主管库存)
  15. 135编辑器代码是html吗,不会代码,你也能做背景样式!!!
  16. camille mumu 模拟器 frida 踩坑记录
  17. 对马科维兹投资组合理论的总结
  18. 解决FlashBuilder 调试有时IE假死问题
  19. Win10中找不到gpedit.msc
  20. IP地址,子网掩码,网段 概念详解

热门文章

  1. 七天免登陆有效期 java_JWT过期刷新问题,实现十五天免登陆
  2. 阿里云Api网关导入Swagger功能简介
  3. as打开时出现The environment variable JAVA_HOME (with The value of C:\Java\jdk1.8.0_101\bin) does not poin
  4. 复制链接到safari浏览器打开,如何从Safari浏览器获取网址
  5. 看完这篇文章前千万别做微信营销
  6. JAVA设计模式总结之六大设计原则(一)
  7. 无广告托管应用,免费的应用分发平台,提供下载次数等数据统计,Android、ios应用合并,一个二维码搞定
  8. 电信大数据治理与质量管理
  9. Python装逼神器,Python实现一键批量扣图
  10. vaild-palindrome