1.IE7及更早版本, unshift()方法总是返回undefined而不是数组的新长度。
2.IE8及之前版本, 在catch语句中捕获的错误对象会被添加到执行环境的变量对象, 而不是catch语句的变量对象中(即使是在catch块的外部也可以访问到错误对象).
3.Safari3以前版本的for-in语句中存在一个bug,该bug会导致某些属性被返回两次.
4.IE8及更早版本, substr()方法传递负值的情况时存在问题,它会返回原始的字符串。
5.IE8是第一个实现Object.defineProperty()方法的版本,但实现不彻底:只能在DOM对象上使用这个方法,只能创建访问器属性.
    连用defineProperty()方法来设置原型的属性都会报错!!什么鸟玩意儿!!一个半成品也敢拿出来!~
6.唯独IE8遍历不出来:
    对于在原型中设置了enumerable=false, 而实例中又覆盖设置enumerable=true的属性来说, for-in循环能遍历出来.
7.IE8及之前版本,不支持Object.keys(), Object.getOwnPropertyNames()方法.
8.IE8及以前版本, 使用delete删除window属性的语句时, 会抛出错误.
9.IE8以前版本, 修改hash属性不会再浏览器的历史记录中生成一条新纪录, 而只会在用户单击包含hash的URL时才会被更新.
10.因为IE8及之前版本的宿主对象(DOM是宿主对象)是通过COM而非JScript实现的,所以在IE8及之前版本中的DOM方法都将返回"object".
    比如document.getElementById, document.createElement
11.IE中的ActiveX对象与普通js的两个差异:
    不能把函数作为属性访问:
    var xhr=new ActieXObject("Microsoft.XMLHttp");
    if(xhr.open){                    //会发生错误, 而js中可以这样访问
    }
    typeof将返回"unknown":
    var type = typeof xhr.open;        //将返回"unknown"
12.IE8及更早版本存在一个bug, 如果某个实例属性与标记为[[DontEnum]]的某个原型属性同名, 那么该属性将不会出现在for-in循环中。
13.IE8及更早版本NodeList实现为一个COM对象, 所以不能像使用js对象那样使用这种对象:
    var arrayOfNodes=Array.prototype.slice.call(sommeNode.childNodes, 0);
14.IE8及以前版本会把<!DOCTYPE>解析成一个注释, document.doctype的值始终为null.
15.IE7及之前版本, document.getElementById(), 不区分ID的大小写,
    如果有表单元素的name与该ID相等,并且位于该ID要素的前面, 将返回这个表单元素
    <input type="text" name="testid">
    <div id="testid"></div>
16.IE9及之前版本不不能访问Node类型以及HTML元素类型(HTMLElement等等).
17.IE8及之前版本能通过属性方式访问自定义特性. 而更高版本及其他浏览器无法访问.
    <div id='div' data_myAttr='customAttr'></div>
    div.data_myAttr;                //IE8及之前版本能访问
18.IE7及之前版本通过getAttribute()返回的不是字符串而是对象, IE8修复了该问题.
19.IE6及之前版本不支持removeAttribute().
20.IE7及更早版本, 在遍历attributes时会返回HTML元素所有能拥有的特性. 此时, 需要判断每个特性节点的specified属性, 是否被设定.
21.IE8及更早版本, 可以为document.createElement()方法传递整个元素标签.
   IE7及更早版本, 可以用这种方法规避很多问题, 只传递tag的用法会导致很多问题:
   不能设置动态创建的input和iframe元素的name特性.(书上提到了iframe, 网上提到了input, 但是我测试下来是可以设置的.. 不知道是不是因为是在IE10下开IE7模式的缘故)
   不能通过表单的reset()方法重设动态创建的input元素
   动态创建的type特性为reset的button元素重设不了表单
   动态创建的一批name相同的单选按钮彼此毫无关系. (本来应该用来表示同一选项的不同值.)
22.IE8及更早版本, 无法使用createTextNode的方式为script和style元素动态添加脚本及样式.
    script可以通过script.text, style可以通过style.styleSheet.cssText来添加脚本及样式,
    cssText如果设置为空或者重复设置, 则有可能导致浏览器崩溃.(不过在IE8下测试了一番,倒是没崩溃,哇!~)
23.IE8及更早版本, 元素之间的空格不会反回文本节点, 而其他浏览器都会返回文本节点.
    所以有关Node类型的操作: childNodes和firstChild等属性的行为不一致.
    所以HTML5新增了个元素版的:childElementCount, first
24.IE8及更早版本的chilren属性中也会包含注释节点, IE9+则只返回元素节点
25.IE8及更早版本的框架不支持contentDocument属性
26.IE8及更早版本不支持style.cssFloat(标准的float样式驼峰写法, 避免与js关键字float发生冲突), 独家支持styleFloat, IE9+两者都支持.
27.IE6及更早版本将<body>元素视为在Web浏览器的视口中滚动的元素, 正常的为<html>元素. 也就是分别为document.body和document.documentElement.
28.IE8及更早版本认为文档的左上角坐标是(2,2), 标准为(0,0), 导致通过getBoundingClientRect()方法获取到得矩形对象就会比实际值往右下偏移2像素.
29.IE8及更早版本不支持 DOM事件流.

变态的IE的更多相关文章

  1. 水印第三版 ~ 变态水印(这次用Magick.NET来实现,附需求分析和源码)

    技能 汇总:http://www.cnblogs.com/dunitian/p/4822808.html#skill 以前的水印,只是简单走起,用的是原生态的方法.现在各种变态水印,于是就不再用原生态 ...

  2. 6个变态的C语言Hello World程序

    6个变态的C语言Hello World程序   下面的六个程序片段主要完成这些事情: 输出Hello, World 混乱C语言的源代码 下面的所有程序都可以在GCC下编译通过,只有最后一个需要动用C+ ...

  3. GGXX的卡通渲染实现 真的好变态......

    最近在youtube上看了GDC,学了很多东西,最让我震撼的就是ggxx的卡通渲染了.感慨一下,想要用3D做出二次元的效果,真的不容易.现记录一些要点: 1)不要使用normal map来做cel-s ...

  4. ACM 变态最大值

    变态最大值 时间限制:1000 ms  |  内存限制:65535 KB 难度:1   描述 Yougth讲课的时候考察了一下求三个数最大值这个问题,没想到大家掌握的这么烂,幸好在他的帮助下大家算是解 ...

  5. 44个 Javascript 变态题解析 (上\下)

    第1题 ["1", "2", "3"].map(parseInt) 知识点: Array/map Number/parseInt JavaS ...

  6. 【BZOJ】1067: [SCOI2007]降雨量(rmq+变态题)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1067 好不爽,弄了一个晚上. 好不爽. 还是照着别人程序拍着看的!!! 噗 这题很变态. 首先,我没 ...

  7. linux之mysqlimport的哪些变态事儿

    mysqlimport是MySQL导入数据的工具,高效易用. 但掌握不透彻就会有一些变态事情.mysqlimport --host='laswebapp.mdb.game.yy.com' --port ...

  8. Java之HttpURLConnection的变态事: Keep-Alive

    HttpURLConnection的变态事: Keep-Alive JDK自带的HttpURLConnection默认启动Keep-Alive, 使用后的HttpURLConnection会放入池里重 ...

  9. javascript的变态位运算

    javascript的变态位运算 var a = "10" | 0; alert(a); alert (typeof a);结果为10,number. 这就是说这条语句可以将字符串 ...

  10. [剑指OFFER] 斐波那契数列- 跳台阶 变态跳台阶 矩形覆盖

    跳台阶 一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法. class Solution { public: int jumpFloor(int number) ...

随机推荐

  1. SecurityException

    摘录自http://www.cnblogs.com/haorenjie/archive/2012/09/12/2682655.html public boolean checkNetwork() { ...

  2. mysql 安装以及配置

    MySQL是一个小巧玲珑但功能强大的数据库,目前十分流行.但是官网给出的安装包有两种格式,一个是msi格式,一个是zip格式的.很多人下了zip格式的解压发现没有setup.exe,面对一堆文件一头雾 ...

  3. javascript学习日志:前言

    javascript学习日志系列的所有博客,主要理论依据是<javascript权威指南>(犀牛书第6版)以及<javascript高级程序设计第三版>(红色书),目前js行业 ...

  4. spring 事务隔离级别配置

    声明式的事务处理中,要配置一个切面,即一组方法,如 其中就用到了propagation,表示打算对这些方法怎么使用事务,是用还是不用,其中propagation有七种配置,REQUIRED.SUPPO ...

  5. 使用Botkit和Rasa NLU构建智能聊天机器人

    欢迎大家前往云+社区,获取更多腾讯海量技术实践干货哦~ 我们每天都会听到关于有能力涉及旅游.社交.法律​​.支持.销售等领域的新型机器人推出的新闻.根据我最后一次查阅的数据,单单Facebook Me ...

  6. python3 第十九章 - 写一个10进制转任意进制的函数

    我们先回忆下之前所学的进制转换的知识(详见:第十章),10进制转其它进制的方法是: 整数部分,除基取余,逆序排列 小数部分,乘基取整,顺序排列 负数,按绝对值处理 好,假设我们需要转化的数都是正整数, ...

  7. Runtime.addShutdownHook的用法

    原文出处:http://kim-miao.iteye.com/blog/1662550.感谢作者的无私分享. 一.Runtime.addShutdownHook理解 在看别人的代码时,发现其中有这个方 ...

  8. nodejs爬虫笔记(一)---request与cheerio等模块的应用

    目标:爬取慕课网里面一个教程的视频信息,并将其存入mysql数据库.以http://www.imooc.com/learn/857为例. 一.工具 1.安装nodejs:(操作系统环境:WiN 7 6 ...

  9. java SimpleDateFormat日期与时间戳的相互转换

    自我总结,有什么不到位的地方,各位可以帮忙纠正补充一下,感激不尽! 目的:SimpleDateFormat类可以很随意的组合日期时间的格式,不止单纯的yyyy-MM-dd这种格式 废话不多说,上代码 ...

  10. 洛谷 [P1426] 通往奥格瑞玛的道路

    题目中的表述很明显是一道二分答案+最短路的题目,二分收取的费用x判断能否到达奥格瑞玛.检验函数用SPFA跑最短路,注意,费用高于x的点不能使用. #include <iostream> # ...