更好的浏览器判定
偶看岁月如歌的《Behind a Gist》一文,提到一个实现浏览器嗅探与版本判定合而为一。刚好,我想去掉我IE那个基本JS引擎的IE判定,于是写了一个全新的东西。
//by 司徒正美 var ver = top.opera ? (opera.version().replace(/\d$/, "" ) - 0) : parseFloat((/(?:IE |fox\/|ome\/|ion\/)(\d+\.\d)/. exec(navigator.userAgent) || [,0])[1]); var dom = { ie: !!top.VBArray && Math.max(document.documentMode||0, ver), //内核trident firefox: !!top.crypto && ver, //内核Gecko opera: !!top.opera && ver, //内核 Presto 9.5为Kestrel 10为Carakan chrome: !!(top.google && top.chrome ) && ver , //内核V8 safari: /apple/i.test(navigator.vendor) && ver // 内核 WebCore } |
《Behind a Gist》一文反复强调UA是可靠的,但在我的IE8中,查看版本明明是8.0.6001.18372,navigator.userAgent却是下面一个奇怪的字符串:
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; QQDownload 627; CIBA) |
如果您觉得此文有帮助,可以打赏点钱给我支付宝1669866773@qq.com ,或扫描二维码


机器瞎学/数据掩埋/模式混淆/人工智障/深度遗忘/神经掉线/计算机幻觉/专注单身二十五年
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?