CNZZ根据用户代理字符串识别浏览器类型

JavaScript实现代码如下

(function() {    var Client = function() {              var engine = { ie: 0, webkit: 0, gecko: 0, opera: 0, khtml: 0 },     browser = { se360: 0, se: 0, maxthon: 0, qq: 0, tt: 0, theworld: 0, cometbrowser: 0, greenbrowser: 0, ie: 0, chrome: 0, netscape: 0, firefox: 0, opera: 0, safari: 0, konq: 0 },     ua = navigator.userAgent.toLowerCase();              for (var type in engine) {            if (typeof type === 'string') {              var regexp = 'gecko' === type ? /rv:([\w.]+)/ : RegExp(type + '[ \\/]([\\w.]+)');              if (regexp.test(ua)) {                    engine.version = window.opera ? window.opera.version() : RegExp.$1;                  engine[type] = parseFloat(engine.version);                   engine.type = type;                  break;                }         }     }     for (var type in browser) {           if (typeof type === 'string') {              var regexp = null;               switch(type) {                    case "se360": regexp = /360se(?:[ \/]([\w.]+))?/; break;                  case "se": regexp = /se ([\w.]+)/; break;                 case "qq": regexp = /qqbrowser\/([\w.]+)/; break;                 case "tt": regexp = /tencenttraveler ([\w.]+)/; break;                    case "safari": regexp = /version\/([\w.]+)/; break;                   case "konq": regexp = /konqueror\/([\w.]+)/; break;                   case "netscape": regexp = /navigator\/([\w.]+)/; break;                   default: regexp = RegExp(type + '(?:[ \\/]([\\w.]+))?');             }             if (regexp.test(ua)) {                    browser.version = window.opera ? window.opera.version() : RegExp.$1 ? RegExp.$1 : 'unknown';                   browser[type] = parseFloat(browser.version);                 browser.type = type;                 break;                }         }     }     return { engine: engine, browser: browser };  }();  window.Client = Client;})();

你可以像下面这样使用Client对象

document.writeln('您的浏览器内核 → '+Client.engine.type+':'+Client.engine.version);

var browser = { se360: '360安全浏览器', se: '搜狗高速浏览器', maxthon: '遨游', qq: 'QQ浏览器', tt: '腾讯TT', theworld: '世界之窗', cometbrowser: '彗星浏览器', greenbrowser: 'GreenBrowser', ie: '微软IE', chrome: '谷歌Chrome', netscape: '网景', firefox: '火狐', opera: 'Opera', safari: '苹果Safari', konq: 'Konqueror' };

document.writeln('您的浏览器 → '+browser[Client.browser.type]+':'+Client.browser.version);

if(Client.engine.ie) { alert('您使用的是IE内核浏览器!'); };

if(Client.engine.ie && Client.engine.ie < 8 ) { alert('您使用的是IE内核浏览器,但是版本低于IE8!'); };

以上代码在所有主流浏览器下完美通过测试。包括CNZZ统计所有的浏览器类型。

代码提取自 OnTyping 中文密码支持库[url=http://www.ontyping.com]http://www.ontyping.com[/url]。转载请保留此信息。

附件里client.js包含了上面的检测代码。在用到的地方包含client.js即可。

cnzz统计 检测浏览器原理(跨浏览器开发实用源码)相关推荐

  1. cnzz统计检测浏览器原理(跨浏览器开发实用源码)

    cnzz根据用户代理字符串识别浏览器类型 ,JavaScript实现代码如下 : 1 (function() { 2 var Client = function() { 3 var engine = ...

  2. 开发直播源码需要了解哪些原理?小白必看内容

    在直播源码开发的过程中会涉及到很多技术细节和原理,只有对这些技术细节和原理有了了解,才能实现更高效率的开发.接下来我们就一起来看一下开发直播源码需要了解哪些原理吧. [一个完整直播源码架构] [一个完 ...

  3. 【2021软件创新实验室暑假集训】SpringMVC框架(设计原理、简单使用、源码探究)

    系列文章目录 20级 Java篇 [2021软件创新实验室暑假集训]计算机的起源与大致原理 [2021软件创新实验室暑假集训]Java基础(一) [2021软件创新实验室暑假集训]Java基础(二) ...

  4. arcgis开发常用源码

    arcgis开发常用源码 1.点上生成面的代码 if (m_pFeatureLayer.FeatureClass.ShapeType == esriGeometryType.esriGeometryP ...

  5. 人脸检测MTCNN和人脸识别Facenet(附源码)

    原文链接:人脸检测MTCNN和人脸识别Facenet(附源码) 在说到人脸检测我们首先会想到利用Harr特征提取和Adaboost分类器进行人脸检测(有兴趣的可以去一看这篇博客第九节.人脸检测之Haa ...

  6. SpringMVC+Maven开发项目源码详细介绍

    代码地址如下: http://www.demodashi.com/demo/11638.html Spring MVC概述 Spring MVC框架是一个开源的Java平台,为开发强大的基于Java的 ...

  7. android开发环境建立以及开发工具的使用--怎样使用eclipse来开发android源码

    /** 版本:1.0 日期:2009-04-01 作者:HKjinzhao 备注: 转自:http://blog.csdn.net/hkjinzhao/article/details/4043997 ...

  8. 怎样使用Eclipse来开发Android源码

    怎样使用Eclipse来开发Android源码 用eclipse+ADT作为android开发工具,可以说是很方便的,在HelloActivity小程序里我们就感觉到eclipse功能的强大.那么,我 ...

  9. 雨松MOMO《Unity 3D游戏开发》源码公布

    原创文章如需转载请注明:转载自雨松MOMO程序研究院 本文链接地址:雨松MOMO<Unity 3D游戏开发>源码公布 下载源码时,首先大家请登陆图灵社区找到<Unity 3D游戏开发 ...

最新文章

  1. 帖子删除显示帖子名称?
  2. c语言规定 函数返回值6,C语言六函数.ppt
  3. 容器部署不适合文件服务器,建议使用内置容器部署War文件与可执行jar
  4. open-falcon
  5. python 反射和动态加载_Python的反射
  6. Python网络编程基础
  7. Spring Cloud 5分钟搭建教程(附上一个分布式日志系统项目作为参考)
  8. Java SpringBoot 页面渲染
  9. 塑料壳上下扣合的卡扣设计_一种塑料件卡扣结构制造技术
  10. commons-fileupload文件上传
  11. elasticsearch 7.3使用x-pack kibana登录
  12. Linux安装python3.8时,编译过程中报错Could not build the ssl module!
  13. Centos7 防火墙常用配置
  14. @所有人 Flink Forward Asia 2020 议题征集倒计时!
  15. Linux中VI / VIM 常用操作练习
  16. 电脑重装系统后Win11扬声器无插座信息如何解决?
  17. win10开机自动拨号上网
  18. Recommended software
  19. linux下搭建svn仓库
  20. 基于php的海贼王动漫网站

热门文章

  1. canon 打印机 android,Canon PRINT Inkjet/SELPHY
  2. DELPHI teechart 报 [Fatal Error] Required package 'TEE' not found
  3. android实现地图api公交线路查询,android实现查询公交车还有几站的功能
  4. 百度语音识别+百度ERNIE-Gram+pyaudio麦克风录音(NLP自然语言处理)
  5. arm 关于m a r系列区别
  6. office批量授权版本下载地址
  7. 除了芝麻代理,近几年国内比较好的代理IP有哪些?
  8. Mybatis-plus学习笔记
  9. 大数据技术之_08_Hive学习_03_查询+函数
  10. 分享几个免费开源api