浏览器检测(包括国内)原理
浏览器检测通常都是通过分析用户代理字符串(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
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· C++代码改造为UTF-8编码问题的总结
· DeepSeek 解答了困扰我五年的技术问题
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 用 C# 插值字符串处理器写一个 sscanf
· Java 中堆内存和栈内存上的数据分布和特点
· 为DeepSeek添加本地知识库
· .NET程序员AI开发基座:Microsoft.Extensions.AI
· 精选4款基于.NET开源、功能强大的通讯调试工具
· 数据不出内网:基于Ollama+OneAPI构建企业专属DeepSeek智能中台
· 大模型工具KTransformer的安装