浏览器检测通常都是通过分析用户代理字符串(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
新闻热点
疑难解答