最近在兼容IE6

原创
2017/01/08 18:44
阅读数 167

IE6是个很神奇的浏览器,鉴于xp盘流传的太多,xp默认浏览器又是ie6,还是要保证ie6基本能看。最近兼容IE6的一些体会,主要是因为使用原生js写的,没有引入jquery,才发现ie6缺少那么多特性。

1.zoom:1是个万能的方法,如果碰到有些元素高度不对,该有padding的没有,该对齐没对齐等等加上zoom:1基本能解决大部分问题。

2.ie6的js缺少太多特性,素组不支持 indexOf 方法。对于IE6-7-8 数组不支持 forEach、map、filter、reduce,String不支持 includes、trim方法。

3.ie6的dom元素不支持getElementsByClassName获取元素,IE6-7不支持querySelector。

4.ie6没有原生的JSON处理,即没有JSON.parse、JSON.stringify等。

5.ie6-7-8 NodeList对象不能通过 Array.prototype.slice.call 转换成数组。

6.ie6-7-8不能使用textContent获取元素的文本,可以用innerText代替。

7.ie6-7不支持 localStorage ,可以用Cookie代替。

8.ie6的 ajax对象,即 new ActiveXObject('Microsoft.XMLHTTP') 不能追加属性,为只读。

9.ie的attachEvent直接绑定函数时,this对象指向window,需要特别绑定才行。

function addEvent(obj, evt, callback) {
    if (obj.addEventListener) {
        obj.addEventListener(evt, callback);
    } else if (obj.attachEvent) {
        obj.attachEvent('on' + evt, function (e) {
            e = e || event;
            callback.call(e.target || e.srcElement); // 使用callback.call把this对象打进去。
        });
    } else {
        obj['on' + evt] = callback;
    }
}

10.ie6js调试,最简单的安装一个office,然后在office里安装 microsoft script editor 可以调试ie,基本上还是比较方便易用的。

展开阅读全文
ie6
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部