本篇为总结开发过程当中遇到的各种IE兼容性的小问题,比较复杂的会单开一篇文章来讲解。

另:我手头目前只有原生IE8,原生IE9,原生IE11,以及IE11模拟的IE5,7,8,9,10。因IE6太过古老而不再进行测试。

无法使用jquery的outerHTML的方式创建含有href属性的a标签(IE5-8)

问题复现:

typeof $("<a href='xxx'>").get(0);//IE7-8:"undefined"
typeof $("<a href='xxx'>").get(0);//标准浏览器:"object"

影响浏览器:

测试 模拟IE5 模拟IE7 模拟IE8 原生IE8 模拟IE9 原生IE9 模拟IE10 原生IE11
 !!$("<a href='xxx'>").get(0) N N N N Y Y Y Y
!!$("<a>").attr("href","x").get(0) Y Y Y Y Y Y Y Y

解决方案:

typeof $("<a>").attr("href","xxx").get(0);//IE8 "object"

使用Date对象来构造新Date对象导致毫秒值丢失(所有IE,火狐)

详见——FireFox和IE下使用Date来构造新Date对象的BUG

IE下console对象报错

详见——让IE兼容console——“由于出现错误80020101而导致此项操作无法完成”的解决方案

IE8下congsole.log的typeof为object

详见——IE8下的typeof(console.log)为"object"的BUG

IE8下Event.button的值与标准浏览器不一致

IE8以下的所有鼠标事件(mousedown,mouseup,click等)的event.button的值与标准浏览器不符,测试只在IE8-中出现。

问题复现:

$("body").mousedown(function(e){
console.log(e.button);//各浏览器不一致
})

影响浏览器:

e.button值测试 IE5 IE7 IE8 IE9 IE10 IE11 火狐 谷歌
鼠标左键 1 1 1 0 0 0 0 0
鼠标中键 4 4 4 1 1 1 1 1
鼠标右键 2 2 2 2 2 2 2 2

解决方案:

使用jquery的e.which属性(1:左键,2:中键,3:右键)可以实现夸浏览器的一致性

同时在jquery1.9.1的源码中可以找到对此问题的兼容解决方案

// Add which for click: 1 === left; 2 === middle; 3 === right
// Note: button is not normalized, so don't use it
if ( !event.which && button !== undefined ) {
event.which = ( button & 1 ? 1 : ( button & 2 ? 3 : ( button & 4 ? 2 : 0 ) ) );
}

IE8下超过31个link style标签后失效

在IE8下最多仅允许31个link style标签,按照在HTML页面中出现先后顺序,从第32个style标签起,及以后的都无效。

解决方案只能发布前做标签合并,再发布。

IE兼容BUG汇总及解决方案(持续更新)的更多相关文章

  1. 那些不兼容 IE11的网站(持续更新)

    此博文用于收集不兼容 IE11 的网站,持续更新,请网站开发者自己认领: 兼容性引起的功能缺陷: v.qq.com (提示未安装 Flash 播放器,这问题我反馈几百年了,还没修复) tv.sohu. ...

  2. 【STM32-V7】STM32H743XIH6开发板,丰富软件资源,强劲硬件配置,大量软件解决方案持续更新中(2019-12-12)

    说明: 争取做更多的实战性应用,分享更多的嵌入式技术,希望能在实际项目中帮到大家. (1)V7将大力加强对初学者的支持力度,已经更新至63章,下载链接,后37章和一批视频教程将加紧制作. (2)事隔五 ...

  3. Linux学习资料网站汇总链接(持续更新ing)

    排名不分先后. 学海无涯苦作舟. 博客: 1.slmba:LINUX博客原创大牛 2.edsionte's TechBlog:Linuxer (他的友情链接中还有一堆Linuxer,被公司屏蔽进不去. ...

  4. js的兼容问题以及解决方式(持续更新)

    我们在使用js操作页面的时候兼容问题是很常见的,下面将常见的兼容问题及其对应的解决方法分享给大家,并持续更新: 1.获取事件对象的兼容写法: IE中:window.event     正常浏览器中:对 ...

  5. .Net免费公开课视频+资料+源码+经典牛逼 汇总篇【持续更新】

    博主推荐一:WP8.1最经典培训教程 博主点评:经典Windows Phone8.1 Runtime API培训最经典教程,此教程由传智播客蒋坤老师录制的一整套WP8.1入门级视频教程,讲授内容非常广 ...

  6. C语言遇到的错误和解决方案~~~持续更新,记录成长的过程

    1.error C2296: '&' : illegal, left operand has type 'char [3]' scanf("%d" &x); 少了一 ...

  7. 关于ASP.NET MVC开发设计中出现的问题与解决方案汇总 【持续更新】

    最近一直用ASP.NET MVC 4.0 +LINQ TO SQL来开发设计公司内部多个业务系统网站,在这其中发现了一些问题,也花了不少时间来查找相关资料或请教高人,最终都还算解决了,现在我将这些问题 ...

  8. 《WCF技术剖析》博文系列汇总[持续更新中]

    原文:<WCF技术剖析>博文系列汇总[持续更新中] 近半年以来,一直忙于我的第一本WCF专著<WCF技术剖析(卷1)>的写作,一直无暇管理自己的Blog.在<WCF技术剖 ...

  9. 中国.NET:各地微软技术俱乐部汇总(持续更新中...)

    中国.NET:各地微软技术俱乐部汇总(持续更新中...)   本文是转载文,源地址: https://www.cnblogs.com/panchun/p/JLBList.html by ​史记微软. ...

随机推荐

  1. nginx lua模块安装

    1.安装LuaJIT,LuaJIT为LuaJIT is a Just-In-Time Compiler (JIT) for the Lua programming language wget http ...

  2. HTML---初识HTML

    版权声明:本文为博主原创文章.不经博主同意注明链接就可以转载. https://blog.csdn.net/Senior_lee/article/details/33723573          H ...

  3. php源码编译常见错误解决方案大全

    php源码编译常见错误解决方案大全http://www.cnlvzi.com/index.php/Index/article/id/143 在CentOS编译PHP5的时候有时会遇到以下的一些错误信息 ...

  4. centos linux系统日常管理3 服务管理ntsysv,chkconfig,系统日志rsyslog,last ,lastb ,exec,xargs,dmesg,screen,nohup,curl,ping ,telnet,traceroute ,dig ,nc,nmap,host,nethogs 第十六节课

    centos linux系统日常管理3  服务管理ntsysv,chkconfig,系统日志rsyslog,last ,lastb ,exec,xargs,dmesg,screen,nohup,cur ...

  5. python之轮询、长轮询、websocket

    轮询 ajax轮询 ,ajax轮询 的原理非常简单,让浏览器隔个几秒就发送一次请求,询问服务器是否有新信息. 1.后端代码 from flask import Flask,render_templat ...

  6. Spark Core (一) 什么是RDD的Transformation和Action以及Dependency(转载)

    1. Spark的RDD RDD(Resilient Distributed Datasets),弹性分布式数据集,是对分布式数据集的一种抽象. RDD所具备5个主要特性: 一组分区列表 计算每一个数 ...

  7. hdu 5103 状态压缩dp

    这题说的是给了n(14)个点,每个点都以他 为根的最大可容的孩子个数和最小的可溶孩子个数L[i] ,R[i] 问这n个点形成一棵树有多少种形态 我们让 dp[i][S] 表示 一 i为根节点 的 拥有 ...

  8. uva1292 树形dp

    这题说的是给了一个n个节点的一棵树,然后 你 从 这 棵 树 的 n 个 节点中 选择 尽量少的 点使得 每条边都至少有一个 士兵看守 dp[0][i]+=dp[1][j] dp[1][i]+=min ...

  9. Java开发之JDK配置

    windows下配置JDK环境变量:       1.安装JDK,安装过程中可以自定义安装目录等信息,例如我们选择安装目录为D:/java/jdk1.5.0_08:    2.安装完成后,右击“我的电 ...

  10. postman 做接口测试

    Postman 之前是作为Chrome 的一个插件,现在要下载应用才能使用. 以下是postman 的界面: 各个功能区的使用如下: 快捷区: 快捷区提供常用的操作入口,包括运行收藏夹的一组测试数据, ...