js中的常见的兼容问题
window对象的属性:
可视区域的宽度:window.innerWidth || document.documentElement.clientWidth(兼容IE) || document.body.clientWidth
可视区域的宽度:window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight
页面滚动条距离顶部的距离:document.documentElement.scrollTop || document.body.scrollTop
页面滚动条距离左边的距离:document.docimentElement.scrollLeft || document.body.scroll Left
event兼容:var eve=event || window.event
(键盘事件) var keyC=eve.keyCode(IE) || eve.which
阻止事件冒泡函数封装:
function del(){
var e = event || window.event;
if(e.stopPropagation){ // 通用方式阻止冒泡行为
e.stopPropagation();
}else{ //IE浏览器
event.cancelBubble = true;
}
阻止默认行为的函数封装:
function stopDefault(event) {
var e = event || window.event;
if (e.preventDefault){
e.preventDefault(); // 标准浏览器
}else{
e.returnValue = false; // IE浏览器
}
}
DOM2级事件的封装:
function addEvent(obj,inci,back){
if(obj.addEventListener){
obj.addEventListener(inci,back);
}else if(obj.attachEvent){
obj.attachEvent("on" + inci,back);
}else{ // 以上都不支持则绑定DOM1级事件
obj["on"+inci] = back;
}
}
事件源target获取的兼容写法:
var e = eve || window.event;
var target = e.target || e.srcElement;
非行内样式的获取:
节点对象.currentStyle[属性] IE浏览器
getComputedStyle(节点对象).属性 非IE浏览器。 获取属性的属性值。