javaScript兼容性问题

javaScript兼容性问题

名称高级浏览器IE浏览器
获取DOM元素样式getComputedStyle(dom)dom.currentStyle
事件监听addEventListenerattachEvent
移除事件监听removeEventListenerdetachEvent
事件对象获取ewindow.event
事件源e.targete.slcElement
阻止冒泡e.stopPropagation()e.cancelBubble=true - - - IE9及以上
阻止默认事件e.preventDefault()return false / window.event.returnValue=false
获取网页可视区域高度window.innerHeightdocument.documentElement.clientHeight

关于事件的e命名根据函数形参而定,e可以是任何名字

以下关于兼容写法
1.获取DOM元素样式
function getStyle(dom){
	if(window.getComputedStyle(dom)){
		return getComputedStyle(dom)
	}else{
		return dom.currentStyle
	}
}
2.事件监听
function eventListener(dom,type,handler,bool){
    bool = bool || false;
    if(window.addEventListener){
        return dom.addEventListener(type,handler,bool);
    }else{
        dom.attachEvent("on"+type,handler,bool);
    }
}
3.移除事件监听
function removeEvent(dom,type,handler,bool){
    bool = bool || false;
    if(window.removeEventListener){
        return dom.removeEventListener(type,handler,bool);
    }else{
        dom.detachEvent("on"+type,handler,bool);
    }
}
4.事件对象和事件源获取
function handler(e){
	var e = e || window.event;
	var target = e.target || e.srcELement;
}
5.阻止冒泡
function cancelBubble(event){
    if(window.stopPropagation){
        event.stopPropagation();
    }else{
        event.cancelBubble = true;
    }
}
6.取消默认事件
function preventDefault(event){
    if(event.preventDefault){
        event.preventDefault();
    }else{
        event.returnValue = false;
    }
}
7.获取页面可视化高度
var clientHeight = window.innerHeight ? window.innerHeight : document.documentElement.clientHeight;
8.ajax请求
function ajax(){
    if(window.XMLHttpRequest){
       var xhr = new XMLHttpRequest();
    }else{
        var xhr = new ActiveXObject("Microsoft.XMLHTTP");
    }
    return xhr;
}
9. scrolltop滚动条高度
var scrollTop = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop;
  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值