zoukankan      html  css  js  c++  java
  • 浏览器常用12种兼容问题(JS)

    //1.滚动条到顶端的距离(滚动高度)
    var scrollTop = document.documentElement.scrollTop || document.body.scrollTop;
    //2.滚动条到左端的距离
    var scrollLeft = document.documentElement.scrollLeft || document.body.scrollLeft;
    /3. IE9以下byClassName
    function byClassName(obj,className){
        //判断是否支持byClassName
        if(obj.getElementsByClassName){
            //支持
            return obj.getElementsByClassName(className);
        }else{
            //不支持
            var eles = obj.getElementsByTagName('*'); //获取所有的标签
            var arr = []; //空数组,准备放置找到的对象
            //遍历所有的标签
            for(var i = 0,len = eles.length;i < len;i ++){
                //找出与我指定class名相同的对象
                if(eles[i].className === className){
                    arr.push(eles[i]); //存入数组
                }
            }
            return arr; //返回
        }
    }
    //4. 获取非行内样式兼容    IE:currentStyle  标准:getComputedStyle
    function getStyle(obj,attr){
        return window.getComputedStyle ? getComputedStyle(obj,true)[attr] : obj.currentStyle[attr];
    }
    //div.style.width =  '';设置样式
    //obj['属性']: 对象是变量时,必须用对象['属性']获取。
    //5. 获取事件对象的兼容
    evt = evt || window.event
    //6. 获取鼠标编码值的兼容
    function getButton(evt){
        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;
            }
        }
    }
    //7. 获取键盘按键编码值的兼容
    var key = evt.keyCode || evt.charCode || evt.which;
    //8. 阻止事件冒泡的兼容
    e.stopPropagation ? e.stopPropagation() : e.cancelBubble = true;
    //9. 阻止超链接的默认行为的兼容
    evt.preventDefault ? evt.preventDefault() : evt.returnValue = false;
    //10. 添加事件监听器的兼容
    function addEventListener(obj,event,fn,boo){
        if(obj.addEventListener){
            obj.addEventListener(event,fn,boo);
        }else if(obj.attachEvent){
            obj.attachEvent('on' + event,fn);
        }
    }
    //11. 移除事件监听器的兼容
    function removeEventListener(obj,event,fn,boo){
        if(obj.removeEventListener){
            obj.removeEventListener(event,fn,boo);
        }else if(obj.detachEvent){
            obj.detachEvent('on' + event,fn);
        }
    }
    //12. 获取事件源的兼容
    var target = event.target || event.srcElement;

     以上就是常见的兼容,遇到别的再添加。

  • 相关阅读:
    【前端】用百度BAE和express部署自己的node后台
    【前端】JavaScript中prototype和__proto__的区别
    【其他】Objective-C 内存管理学习总结
    【Unity3D】Unity3D 让角色的头部望向鼠标
    【Unity3D】Unity3D 摄像机带透明截图
    【前端】前端冷知识
    【Unity3D】Unity3D SkinnedMeshRenderer换装系统
    【前端】HTML中最适合做按钮的元素
    IEnumerable和IEnumerator 详解 分类: C# 2014-12-05 11:47 18人阅读 评论(0) 收藏
    LINQ to Entities
  • 原文地址:https://www.cnblogs.com/xixinhua/p/10417517.html
Copyright © 2011-2022 走看看