常见兼容性

JS中常见的兼容性问题

删除空白节点
function deleteSpace(node){

	var child = node.childNodes();

	for(var i = 0; i < child.length;i++){

		if(child[i].nodeType === 3 && /^\s+$/.test(child[i].nodeValue)){

			child[i].parentNode.removeChild(child[i]);
      	  } 

    } 
        return node;
}
兼容键盘按键
function getbutton(evt){ 
	var e = evt || window.event; 
	if(evt){ 
		return event.button; 
    }else if(window.event){
    	 switch(event.button){ 
  		  case 1 : return 0;
  		  case 4 : return 1;
    	  case 2 : return 2;      
  		  }      
    }     
}
监听事件的兼容
function addEventListener(obj,event,fun,boo){

	if(obj.addEventListener){ 
		obj.addEventListener(event,fun,false);  
	}else{ 
		obj.attachEvent("on"+ event,fun);   
	}     
} 
解除监听事件的兼容
function removeEventListener(obj,event,fun,boo){ 
		if(obj.removeEventListener){ 
			obj.removeEventListener(event,fun,false); 
			}else{ 
				obj.detachEvent("on"+ event,fun);
				 }
} 

使用getAttribute()获取元素class名

getAttribute("class");

IE7及以下版本不支持该方法,
并且在浏览器中的返回值为null,其他浏览器支持该方法;
getAttribute("className");

// IE7及以下版本支持该方法,其他浏览器不支持

兼容性写法

getAttribute("class") == null ? getAttribute("className"): getAttribute("class");
获取内部和行内样式兼容
function getStyle(obj,attr){

	return obj.currentStyle ? obj.currentStyle[attr] : getComputedStyle(obj,1)[attr];
} 
兼容滚动条高度
document.onscroll = function(){

	var scrollTop = document.documentElement.scrollTop || document.body.scrollTop;
	
	}
	
document.scrollTop = function(){

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

阻止冒泡兼容
function maoPao(evt){
	var e = evt || window.event;
	if(e.stopPropagation){
		e.stopPropagation();
	}else{
		e.cancleBubble = true;//IE 
	}
}
超链接的兼容性
function fnHref(evt){
	var e = evt || window.event;
	if(e.preventDefault){
		e.preventDefault();   //标准
	}else{
		e.returnValue = false;  //IE
	}
}
获取className的兼容
function getElementsByClass(className){
	if(document.getElementsByClassName){
		document.getElementsByClassName(className);
	}else{
		var arr = [];
		var obj = document.getElementsByTagName("*");//兼容IE低版本
		for(var i = 0; i < obj.length; i++){
			if(obj[i].className == className){
				arr.push(obj[i]);
			}
		}
		return arr;
	}
}
事件源的兼容性

var target = evt.target || evt.srcElement;

//年份兼容 (火狐获取的年份要减去1900)
一般用 getFullYear();获取年份

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值