Javascript 跨浏览器事件

前一段时间的javascript中的一些东西忘的差不多了,回顾了些许,发现有些东西很有价值需要记录,主要就是关于css和跨浏览器(IE)的问题。
Dom操作css
没什么新奇的,有两个地方需要特别说明,行内的css和外部或者内部css样式修改区别。
外部或者内部样式表只能获得查看,不能修改。能修改的只是行内样式表,意思是如果要修改css,那也只是改变的行内样式表。
获取行内样式,修改。
document.getElementById("btn").onclick=function(){
var div = document.getElementById("div");
div.style.height="300px";
div.style.width="200px";
}
直接拿到相应的元素直接 .style.属性 就能直接拿到属性了


获取内部或外部样式表


if(document.defaultView){ //非 IE 
var style = document.defaultView.getComputerStyle(Element,attr);
  return style;
}else if(div.currentStyle){ //IE
  return currentStyle;
}


Element是要被获取样式表的元素,attr是其属性。
非IE下直接返回样式表,IE下也返回当前样式表,要查看属性的话也是直接 
(元素.currentStyle.属性) 但都不可更改。

还有就是事件,基本的就不写的。跨浏览器事件,还是比较有用的对IE用户来说。

//跨浏览器工具对象


var EventUtil = {
/*
* 给元素添加事件处理程序的方法
* element : 需要添加事件处理程序的元素
* type : 元素的事件类型
* handler : 当事件触发时调用的函数
*/
addHandler : function(element, type, handler){
  if(element.addEventListener){
    element.addEventListener(type,handler,false);
  }else if(element.attachEvent){
    element.attachEvent("on" + type, handler);
  }else{
    element["on" + type] = handler;
  }
},
/*
* 给元素删除事件处理程序的方法
* element : 需要删除事件处理程序的元素
* type : 元素的事件类型
* handler : 当事件触发时调用的函数
*/
   removeHandler : function(element, type, handler){
    if(element.removeEventListener){
      element.removeEventListener(type,handler,false);
     }else if(element.detachEvent){
      element.detachEvent("on" + type, handler);
    }
},
/*
* 获得事件对象
*/
  getEvent : function(event){
    return event ? event : window.event;
  },
/*
* 获得事件对象的目标元素
*/
  getTarget : function(event){
    return event.target ? event.target : event.srcElement
  },
/*
* 取消事件的默认行为
*/
  preventDefault : function(event){
    if(event.preventDefault){
      event.preventDefault();
    }else if(event.returnValue){
      event.returnValue = false;
    }
},
/*
* 停止事件的传播
*/
  stopPropagation : function(event){
    if(event.stopPropagation){
      event.stopPropagation();
    }else if(event.cancelBubble){
      event.cancelBubble = true;
    }
},
/*
* 获取元素某个属性的样式的值
* element : 需要获取样式的元素
* attr : 需要获取值的属性名称
*/
  getCss : function(element,attr){
    if(document.defaultView){
      var elementStyle = document.defaultView.getComputedStyle(element,null);
    return elementStyle[attr];
      }else if(element.currentStyle){
    return element.currentStyle[attr];
        }
  }
}

你可能感兴趣的:(JavaScript)