zoukankan      html  css  js  c++  java
  • 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;
    
  • 相关阅读:
    MongoDb 快速入门教程
    读书应该是件快乐的事
    图灵机 快速入门教程
    开源项目 —— 中国行政区划数据
    MySQL用户管理:添加用户、授权、删除用户
    Java 图片处理解决方案:ImageMagick 快速入门教程
    FTP弱口令猜解【python脚本】
    Telnet弱口令猜解【Python脚本】
    PHPMyAdmin弱口令猜解【Python脚本】
    WebLogic口令猜解工具【Python脚本】
  • 原文地址:https://www.cnblogs.com/guanhuohuo/p/12526225.html
Copyright © 2011-2022 走看看