前一段时间的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.属性 就能直接拿到属性了javascript
获取内部或外部样式表css
if(document.defaultView){ //非 IE
var style = document.defaultView.getComputerStyle(Element,attr);
return style;
}else if(div.currentStyle){ //IE
return currentStyle;
}java
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];
}
}
}对象