JS兼容性处理

  1. 百度 - 终端适配API

    适合服务器端使用。POST客户端传递的http头信息越多,得到的适配信息越准确。百度返回的数据为:

    正确情况:
    
    {
    
        device_type :/*1:手机2:pc*/
    
        os:/*操作系统*/
    
        os_version:/*操作系统版本*/
    
        browser:/*浏览器*/
    
        browser_version:/*浏览器版本*/
    
        model:/*机型*/
    
        vendor:/*厂商*/
    
        tn: /*wml|middle|touch|utouch|iphone*/
    
    }

    服务器端代码可根据返回的值,来进行自定义判断,该给客户端返回何种数据。
    为防止过度依赖百度判断,可本地缓存每次客户端请求头数据,和百度返回的值,建立一个KEY、VALUE表,则某种类型客户端只要请求一次百度,本地自己的服务器即可自己判断了。

  2. 一段巧妙判断IE浏览器版本的js代码

    只有一行代码,只针对IE起作用,而且考虑了IE用户自选渲染模式、怪癖模式、支持IE5、6、7、8、9及10。

    <html>
    
    <script>
    
    var isIE=false;
    
    /*@cc_on isIE=(document.documentMode||( document.compatMode == "CSS1Compat" ? "XMLHttpRequest" in window ? @_jscript_version*10-50 : 6 : 5)) @*/
    
    alert(isIE);//非IE弹出False,IE则弹出5到10版本值
    
    </script>
    
    </html>

    最短判断是否IE的代码:

    if(-[1,]){
    
    alert("非IE");
    
    }else{
    
    alert("IE");
    
    }

    经过测试:IE9、IE10弹出“非IE”。

  3. 实际编码中,更多的将是采用“对象/特征”来判断浏览器能力的方式
    //添加事件工具函数
    
    function addEvent(el,type,handle){
    
        if(el.addEventListener){//for standard browses
    
            el.addEventListener(type,handle,false);
    
        }else if(el.attachEvent){//for IE
    
            el.attachEvent("on"+event,handle);
    
        }else{//other
    
            el["on"+type]=handle;
    
        }
    
    }

     

你可能感兴趣的:(兼容性)