解决 IE下ajaxfileupload不兼容的问题
最近在工作中遇到文件上传在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不兼容的问题相关推荐
- 解决ie8下background-size不兼容问题
如果容器大小与背景图大小一致,页面显示无问题,如果不一致,则会出现问题,background-size失效,解决方法: background: url(../img/img.png) no-repea ...
- 解决vc 6在vista下的一些兼容问题
解决vc 6在vista下的一些兼容问题 虽然vs系列的2008sp1版都出了,但是vs 2003以后的版本大多是都是在.Net上做修改,对我们vc程序员使用的MFC的修改很少.所以,许多VC程序员还 ...
- Ubuntu 16.04下用Wine运行的软件出现方块的解决思路(应该是兼容现在所有平台的Wine碰到这个的问题)
Ubuntu 16.04下用Wine运行的软件出现方块的解决思路(应该是兼容现在所有平台的Wine碰到这个的问题) 参考文章: (1)Ubuntu 16.04下用Wine运行的软件出现方块的解决思路( ...
- windows下修改黑苹果config_【黑苹果】解决linux和黑苹果下usb无线网卡兼容问题
黑苹果* 简单的说,就是在自己的电脑上安装苹果系统(MAC OS).但由于苹果公司的软硬件限制,导致装系统这么一个在WIN系统中平常的事情,变成很多极客爱好者的专业.比如,我们的毛老师- 上面这个配置 ...
- 万能方法解决linux和黑苹果下usb无线网卡兼容问题
不管是安装linux还是黑苹果,都有三大卡(声卡,显卡,网卡)的驱动问题摆在面前,问题面前人人平等,不管是新手老手,都有可能在其中任何一个或多个卡上面摔跟头. 在这三大卡中,尤以网卡首当其冲,因为网卡 ...
- 解决不同浏览器的css兼容问题
在网站设计的时候,应该注意css样式兼容不同浏览器问题,特别是对完全使用DIV CSS设计的网,就应该更注意IE6 IE7 FF对CSS样式的兼容,不然,你的网乱可能出去不想出现的效果! 所有浏览器 ...
- win7冒险岛java,win7玩冒险岛不兼容怎么办?解决win7玩冒险岛不兼容的方法
冒险岛是一款经得起考验的游戏,从2004年上市以来,愉悦了千千万万的玩家,它曾获得2009和2010两届十大最受欢迎休闲网络游戏奖,它的趣味性不必再说,绝对是很多玩家小时候的经典回忆,最近有用户反映在 ...
- 运维经验分享(三)-- 解决Ubuntu下crontab不能正确执行脚本的问题
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://dgd2010.blog.51cto.com/1539422/1676490 运维 ...
- 记:一次单板的意外串口异常解决(下)——PC端
0x00前言 写下这篇文章主要目的是总结一下最近调试的一块单板遇到的,关于串口方面的一些问题.本文将会分为上下两篇,这篇为下篇,主要讲述的是: 串口接在PC端时出现意外的接收数据错误 阅读本文,您可能 ...
最新文章
- Collection集合--ArrayList源码读后感总结
- 一个很有借鉴价值的编程故事(转)
- Use tcode ST01 to log authorization check
- centos7 安装rabbitMQ3.6.6
- 除了修改WEBCONFIG会导致WEB服务重启外,还有其他的什么操作会导致重启?
- 技术干货 | mPaaS 框架下如何使用 Crash SDK 对闪退进行分析?
- python删除一个文件_Python 实现一个小功能: 删除某路径下文件及文件夹的脚本...
- bat截取字符串[转]
- How-to: Tune Your Apache Spark Jobs (Part 1)
- [转载] python 字符串方法大全
- C/C++/JAVA内存布局
- 晶体管放大电路与Multisim仿真学习笔记
- MikroTik RB750r2/RB750gr3 操作记录
- 吉客云与金蝶云星空集成方案(吉客云主管库存)
- 135编辑器代码是html吗,不会代码,你也能做背景样式!!!
- camille mumu 模拟器 frida 踩坑记录
- 对马科维兹投资组合理论的总结
- 解决FlashBuilder 调试有时IE假死问题
- Win10中找不到gpedit.msc
- IP地址,子网掩码,网段 概念详解
热门文章
- 七天免登陆有效期 java_JWT过期刷新问题,实现十五天免登陆
- 阿里云Api网关导入Swagger功能简介
- as打开时出现The environment variable JAVA_HOME (with The value of C:\Java\jdk1.8.0_101\bin) does not poin
- 复制链接到safari浏览器打开,如何从Safari浏览器获取网址
- 看完这篇文章前千万别做微信营销
- JAVA设计模式总结之六大设计原则(一)
- 无广告托管应用,免费的应用分发平台,提供下载次数等数据统计,Android、ios应用合并,一个二维码搞定
- 电信大数据治理与质量管理
- Python装逼神器,Python实现一键批量扣图
- vaild-palindrome