JS兼容

1、选择器中的兼容问题
1) 在低版本的浏览器中,getElementsByName 和getElementsByClassName有兼容性
原因:并不是所有的标签都有name值
2)ES5选择器:document.querySelectorAll();支持IE8+
2、节点的兼容问题
获取第一个非空白的子节点:firstElementChild (IE7、8不支持)
获取最后一个非空白的子节点:lastElementChild(IE7、8不支持)
获取下一个兄弟节点(包含空白节点和注释):nextSibling (IE7、8包括注释节点,不包含空白节点)
获取下个兄弟节点:nextSibling(IE7、8不支持)
获取上一个兄弟节点(包含空白节点和注释):previousSibling(IE7、8包括注释节点,不包含空白节点)
获取上个兄弟节点:previousElementSibling(IE7、8不支持)
3、获取非行内样式的兼容:

function getStyle(obj,style){
    if(obj.currentStyle){
        return obj.currentStyle[style]; //IE的
    }else{
        return getComputedStyle(obj,false)[style]; // 非IE
    }
}

4、事件的兼容:
document.onclick = function (eve) {
var e = eve || window.event;
// 非IE || IE
console.log(e);
}
5、事件源的兼容:
var target = e.target || e.srcElement;
6、键盘按下事件的兼容:
var keyC = eve.keyCode || eve.which
7、阻止事件冒泡的兼容:
eve.stopPropagation();
eve.cancelBubble = true; //兼容IE
8、浏览器的页面卷动值的兼容:
document.documentElement.scrollHeight || document.body.scrollTop;
9、 阻止浏览器的默认事件的兼容:

if( e.preventDefault ){
    e.preventDefault();
}else{
    window.event.returnValue = false;
}

10、事件监听的兼容:(DOM2级)
非IE:(事件名不带on),第三个参数表示是在捕获阶段还是冒泡阶段

Div.addEventListener('click',fn,false);
oDiv.removeEventListener('click',fn ,false);

IE:只有冒泡阶段,所以没有第三个参数(事件名需要加on)
oDiv.attachEvent();
oDiv.detachEvent() ;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值