浏览器检测(包括国内)原理

浏览器检测通常都是通过分析用户代理字符串(navigator.userAgent)来进行检测。

由于国内浏览器用的内核多是国外的,所以很多特性无法与国外浏览器区分,所以要先检测国外浏览器,再检测国内浏览器。这样当国内浏览器没有找到匹配项时就是内核默认的国外浏览器。

function checkChineseBrowser(){
        var userAgent = navigator.userAgent;
        
        var browserKeyArr = [{
            name:'搜狗',
            domKey:'sougou',
            agentKey:'MetaSr'
        },{
            name:'QQ',
            domKey:'qq',
            agentKey:'QQBrowser'
        },
        {
            name:'猎豹',
            domKey:'liebao',
            agentKey:'LBBROWSER'
        },{
            name:'淘宝',
            domKey:'taobao',
            agentKey:'TaoBrowser'
        },{
            name:'遨游',
            domKey:'aoyou',
            agentKey:'Maxthon'
        }];
        
        
        for(var i = 0,length = browserKeyArr.length; i < length ; i++){
            var pattern = new RegExp(browserKeyArr[i].agentKey);
            
            if(pattern.test(userAgent)){
                return browserKeyArr[i].domKey;
            }
        }

        return userAgent;

    }

上面这个用于检测国内浏览器,当然,必须自定义。并且修改过后才能用于生产环境。另外,360系列的浏览器UA貌似有点儿丧心病狂,不对,简直就是耍流氓!

然后强烈推荐一篇讲解分析userAgent的文章

用户代理检测与浏览器Ua详细分析:http://www.cnblogs.com/hykun/p/Ua.html

posted @ 2015-01-07 16:16  myqianlan  阅读(829)  评论(0编辑  收藏  举报