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;