js中的一些兼容问题

①获取非行内样式:

高版本浏览器为:window.getComputedStyle(obj,伪类)["属性"]  不获取伪类的时候可以不写或者写false/null;

低版本浏览器为:元素(obj).currentStyle.属性(attr)

兼容写法:

if(window.getComputedStyle){
    return window.getComputedStyle(obj,false)[attr]      
}else{
    return obj.currentStyle.attr
}        

②event事件对象:

IE:window.event

非IE:e

兼容写法:

var e = e || window.event

③获取键盘的按键值:

IE8及以下版本不兼容which

兼容写法:

var x = event.which || event.keyCode      ||      var x = e.which || e.keyCode

④阻止浏览器的默认行为(类似右键单击浏览器会弹出一个菜单,拖拽文字,超链接中的控连接点击会刷新等)

兼容写法:

e.preventDefult?e.preventDefult():e.returnValue = false      //也可以写为return false 但是要记住遇到return 下面的代码不再执行

⑤阻止事件冒泡:

兼容写法:

e.stopPropagation?e.stopPropagation():e.cancelBubble = true 

⑥事件监听:

obj.addEventListener("事件去掉on",function(){},布尔值)
obj.attachEvent("事件带on",function(){})  //IE

⑦获取事件源:

var target = e.target || e.srcElement;

⑧鼠标在某对象内部偏移量

var disX = e.offsetX || e.layerX;

⑨获取滚动条距离

var top = document.documentElement.scrollTop || document.body.scrollTop;

 

posted @ 2019-01-16 19:45  一直敲敲敲  阅读(124)  评论(0编辑  收藏  举报