• 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;
    
  • 相关阅读:
    requests 关于multipart/form-data类型上传文件
    APPIUM 小程序webview问题
    python多重继承,优先级
    关于apppium启动微信,每次都要重新登录的解决方法
    map函数
    unittest: if __name__ == "__main__" 理解
    接口自动化____如何根据测试数据excel中的数据量多少 去test类中定义同数据量的测试函数
    写一个简单的 django_post demo
    django day1 建立一个简答的django demo
    201903-1 分蛋糕
  • 原文地址:https://www.cnblogs.com/guanhuohuo/p/12526225.html
Copyright © 2020-2023  润新知