最近在啃jQuery的源码,估计会啃到很多浏览器兼容性的问题,所以整理一下

1,IE下的内存泄露.

在IE中不在DOM树中的独立节点有javascript变量引用它的时候不会被回收。

解决:手动将该js变量置为null

2,IE<9,Nodelist无法调用slice和push

解决:手动模拟

3,IE,直接使用elem.attrName的形式获得属性值会自动串改DOM元素的某些属性,比如a的href

解决:使用elem.getAttribute(attrName)或elem.getAttributeNode(attrName).value
4,IE<9,使用getAttribute获取input元素的value时返回null

解决:通过elem.defaultValue来获取

5,IE<9,不能直接使用getAttribute('className')来获取class

解决:使用getAttribute('class')

6,Opera < 10,当一个元素有多个class的时候,用getElementsByClassName来获取第二个类会出错。
解决:不要使用这个API

7,黑莓4.6的浏览器会返回那些不在DOM树中的节点。
解决:用elem.parentNode来判断是否在DOM树中

8,IE8中的QSA无法使用[selected]之类的属性选择符,无法使用:checked之类的伪元素,对name的大小写不敏感

9,contains不应该包含自身

10,检测字符串可以转换为数字,使用这个方法obj - parseFloat( obj ) >= 0

11,delete DOM元素上的自定义属性时,IE<9会报错,具体规则如下

var div = document.createElement( "div" );
try {
//IE7无论div是否有test都会抛出异常。
//IE8在没test的情况下会抛出异常,有test的情况下不会。
//IE9都不会。
delete div.test;
} catch( e ) {
alert(1);
}

所以这里要做判断,IE下使用removeAttribute来删除

12,JSON.stringify的tips

//var see = {name:'see',id:{toJSON:function () {}}};JSON.stringify(see)
//var see = {my:function () {}};JSON.stringify(see);
//JSON.stringify(window);

//stringify是无法转换带函数、带循环引用的对象的

13,IE6-7用InnerHTML生成table会自动插入tbody

14,IE678不能直接用InnerHTML生成link元素

15,checkbox进行append后,它的checked状态不会保留。IE67

16,radio在进行append后,它的checked状态如果出现在name属性之前则不会保留。webkit(实测只有safari会出现这样的状况)

17,IE下textarea的defaultValue不一定被正确地克隆

18,Webkit下fragment元素里的input元素的checked状态不会被正确克隆

19,有的事件没有target,比如load ,IE67

20,event.target不能为TEXT_NODE,chrome23+,safari老版本

21,老版本的FF不会触发非左键click的冒泡

22,IE678在detach事件时,还需要手动将onEventType如onclick置为null

浏览器兼容性小整理和一些js小问题(后面会继续更新)的更多相关文章

  1. React.js 小书 Lesson9 - 事件监听

    作者:胡子大哈 原文链接:http://huziketang.com/books/react/lesson9 转载请注明出处,保留原文链接和作者信息. 在 React.js 里面监听事件是很容易的事情 ...

  2. JS小积累(二)— 自动获取浏览器尺寸

    JS小积累-获取浏览器窗口尺寸 作者: 狐狸家的鱼 GitHub:八至 autodivheight(); function autodivheight() { //函数:获取尺寸 //获取浏览器窗口高 ...

  3. js小功能整理

    /** * 判断是否包含字符串某字符串 * @param {[type]} str [被检测的字符串] * @param {[type]} substr [检测是否含有的字符串] * @return ...

  4. 第24篇 js小知识和“坑”

    前面说了说了js的相关知识,基本上除了语法外,把项目常用的知识做了一个梳理,现在说下js的其它方面的知识,这些知识不成体系,属于不理解对于一般开发没什么太多影响,但如果理解清楚,可以更好去开发. js ...

  5. 关于浏览器内核与javascript引擎的一些小知识

    浏览器是我们每天几乎都必须使用的软件产品,可是对于自己每天都接触的浏览器,很多同学其实对其一无所知.今天异次元就跟大家说说关于浏览器内核的一些事儿吧,好让你了解多一点稍微内在的东西. 在下面的文章中主 ...

  6. React.js 小书介绍

    React.js 小书 Github 关于作者 这是一本关于 React.js 的小书. 因为工作中一直在使用 React.js,也一直以来想总结一下自己关于 React.js 的一些知识.经验.于是 ...

  7. 一个js小游戏----总结

    花了大概一天左右的功夫实现了一个js小游戏的基本功能,类似于“雷电”那样的小游戏,实现了随即怪物发生器,碰撞检测,运动等等都实现了,下一个功能是子弹轨迹,还有其他一些扩展功能,没有用库,也没有用web ...

  8. js小工具---本地图片转换为base64编码数据

    今天用jmeter对图片对比进行性能测试,post请求为json请求,图片为Base64编码后的图片数据.所以需要将一张本地图片生成base64编码,找到一个js小工具,记录在这儿便于以后复用. 效果 ...

  9. React.js 小书 Lesson25 - 实战分析:评论功能(四)

    作者:胡子大哈 原文链接:http://huziketang.com/books/react/lesson25 转载请注明出处,保留原文链接和作者信息. (本文未审核) 目前为止,第二阶段知识已经基本 ...

随机推荐

  1. UIPasteboard的使用

    剪贴板的使用以及自定义剪贴板. 系统剪贴板的直接调用 其实整个过程非常的简单,我就用我写的一个自定义UILable来说明调用系统剪贴板. 首先,因为苹果只放出来了 UITextView,UITextF ...

  2. WiFi QC 自动测试:Qt控制无线路由器

    在测试wifi的时候,测试人员一般要使用很多不同型号的AP,并且需要不断地切换Chariot的配置. 这里的思路是致力于提供一个友好的GUI界面来自动控制AP,并且自动控制Chariot进行Throu ...

  3. TranslateAnimation 使用详解

    Android JDK为我们提供了4种动画效果,分别是: AlphaAnimation,RotateAnimation, ScaleAnimation, TranslateAnimation.今天我想 ...

  4. 回顾一年的IT学习历程与大学生活

    今天是2015年8月27日,距离成为大三狗还有一个多星期,在这个不算繁忙的暑假的下午来总结一下这一年来,在IT方面的学习. 一.入门(2014.3) 我大一的专业是信息工程,信息工程听上去就是信息(I ...

  5. 我给出的一份Java服务器端面试题-适合电话面试

    这部分内容,参考了<面试官的七种武器>一文. 电面与face2face的面试还是有区别的,很多考察方式无法使用. 从简历聊起,逐渐进入正题. Java语法 重载与重写的区别? java如何 ...

  6. [BZOJ 3038]上帝造题的7分钟2(树状数组)

    分析:http://www.lydsy.com:808/JudgeOnline/problem.php?id=3038 这题看起来没办法做……但是注意到1e12只要开方8次就能到1……所以直接暴力就行 ...

  7. Pell方程及其一般形式

    一.Pell方程 形如x^2-dy^2=1的不定方程叫做Pell方程,其中d为正整数,则易得当d是完全平方数的时候这方程无正整数解,所以下面讨论d不是完全平方数的情况. 设Pell方程的最小正整数解为 ...

  8. SQL中exists的使用方法

    EXISTS用于检查子查询是否至少会返回一行数据,该子查询实际上并不返回任何数据,而是返回值True或False exists : 强调的是是否返回结果集,不要求知道返回什么, exists 与 in ...

  9. OC基础--self关键字&super关键字

    PS:OC中的self关键字可以与C#中的this关键字区分记忆,虽然区别还是很大的. OC中的super关键字指的是父类指针 一.self关键字必须了解的知识: 1.使用场合:只能用在方法中(对象方 ...

  10. Servlet Study 1

    this content below are come from the  JSR154 by sun Just for record purpose. if this relate to some ...