js兼容的一些小记录

因为是遇到问题了(有时候自己解决了没有做笔记,然后同事也遇到了一样的问题,问我有时候也记不太清了,所以逼自己养成习惯,将遇到的问题记录下来,给同事和自己一个清晰的解决思路)

百度了一下,但是没有找到讲解的很易懂的例子,自己对这个断言就做一下记录,方便自己日后查看和需要的人看看。

//1.scrollTop


document.documentElement.scrollTop || document.body.scrollTop

//2.scrollLeft


document.documentElement.scrollLeft || document.body.scrollLeft

//byClassName
//3.兼容byClassName


function byClassName(obj,className){
    if(obj.getElementsByClassName){
        return obj.getElementsByClassName(className);
    }else{
        var arr = [];
        var ele = obj.getElementsByTagName_r('*');
        for(var i = 0,len = ele.length;i < len;i ++){
            if(ele[i].className == className){
                arr.push(ele[i]);
            }
        }
        return arr;
    }
}

//4.获取对象中class属性值的兼容


//getAttribute('class') ie8以下 返回null
//oDiv.getAttribute('className') : 除ie8以下支持,其它都返回null
var className = oDiv.getAttribute('className') ? oDiv.getAttribute('className') : oDiv.getAttribute('class');

//5.获取非行内样式


function getStyle(obj,attr){
    return obj.currentStyle ? obj.currentStyle[attr] : getComputedStyle(obj,1)[attr];
}

//6.获取事件对象的兼容


var e = 形参 || window.event;

//7.获取鼠标按键编码值的兼容


function getButton(evt){
//              evt = evt || window.event;
    var e = evt || window.event;
    if(evt){
        return e.button;
    }else if(window.event){
        switch(e.button){
            case 1 : return 0;
            case 4 : return 1;
            case 2 : return 2;
        }
    }
}

//8.通过onkeypress获取键盘按键编码值的兼容


event.keyCode || event.which || event.charCode

//9.阻止事件冒泡的兼容


e.stopPropagation ? e.stopPropagation() : e.cancelBubble = true;

//10.阻止超链接的默认行为的兼容


e.preventDefault ? e.preventDefault() : e.returnValue = false;

//11.添加事件监听器的兼容


function addEventListen(obj,evt,fun,boo){
    if(obj.attachEvent){
        
        obj.attachEvent('on' + evt,fun);
    }else{
        obj.addEventListener(evt,fun,boo);
    }
}

//12.删除事件监听器的兼容


function removeEventListen(obj,evt,fn,boo){
    if(obj.removeEventListener){
        obj.removeEventListener(evt,fn,boo);
    }else{
        obj.detachEvent('on' + evt,fn);
    }
}

//13.获取事件源的兼容


var target = e.target || e.srcElement;
posted @ 2017-07-13 09:37  guanqinghua  阅读(18)  评论(0编辑  收藏  举报