cnzz统计 检测浏览器原理(跨浏览器开发实用源码)
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统计 检测浏览器原理(跨浏览器开发实用源码)相关推荐
- cnzz统计检测浏览器原理(跨浏览器开发实用源码)
cnzz根据用户代理字符串识别浏览器类型 ,JavaScript实现代码如下 : 1 (function() { 2 var Client = function() { 3 var engine = ...
- 开发直播源码需要了解哪些原理?小白必看内容
在直播源码开发的过程中会涉及到很多技术细节和原理,只有对这些技术细节和原理有了了解,才能实现更高效率的开发.接下来我们就一起来看一下开发直播源码需要了解哪些原理吧. [一个完整直播源码架构] [一个完 ...
- 【2021软件创新实验室暑假集训】SpringMVC框架(设计原理、简单使用、源码探究)
系列文章目录 20级 Java篇 [2021软件创新实验室暑假集训]计算机的起源与大致原理 [2021软件创新实验室暑假集训]Java基础(一) [2021软件创新实验室暑假集训]Java基础(二) ...
- arcgis开发常用源码
arcgis开发常用源码 1.点上生成面的代码 if (m_pFeatureLayer.FeatureClass.ShapeType == esriGeometryType.esriGeometryP ...
- 人脸检测MTCNN和人脸识别Facenet(附源码)
原文链接:人脸检测MTCNN和人脸识别Facenet(附源码) 在说到人脸检测我们首先会想到利用Harr特征提取和Adaboost分类器进行人脸检测(有兴趣的可以去一看这篇博客第九节.人脸检测之Haa ...
- SpringMVC+Maven开发项目源码详细介绍
代码地址如下: http://www.demodashi.com/demo/11638.html Spring MVC概述 Spring MVC框架是一个开源的Java平台,为开发强大的基于Java的 ...
- android开发环境建立以及开发工具的使用--怎样使用eclipse来开发android源码
/** 版本:1.0 日期:2009-04-01 作者:HKjinzhao 备注: 转自:http://blog.csdn.net/hkjinzhao/article/details/4043997 ...
- 怎样使用Eclipse来开发Android源码
怎样使用Eclipse来开发Android源码 用eclipse+ADT作为android开发工具,可以说是很方便的,在HelloActivity小程序里我们就感觉到eclipse功能的强大.那么,我 ...
- 雨松MOMO《Unity 3D游戏开发》源码公布
原创文章如需转载请注明:转载自雨松MOMO程序研究院 本文链接地址:雨松MOMO<Unity 3D游戏开发>源码公布 下载源码时,首先大家请登陆图灵社区找到<Unity 3D游戏开发 ...
最新文章
- 帖子删除显示帖子名称?
- c语言规定 函数返回值6,C语言六函数.ppt
- 容器部署不适合文件服务器,建议使用内置容器部署War文件与可执行jar
- open-falcon
- python 反射和动态加载_Python的反射
- Python网络编程基础
- Spring Cloud 5分钟搭建教程(附上一个分布式日志系统项目作为参考)
- Java SpringBoot 页面渲染
- 塑料壳上下扣合的卡扣设计_一种塑料件卡扣结构制造技术
- commons-fileupload文件上传
- elasticsearch 7.3使用x-pack kibana登录
- Linux安装python3.8时,编译过程中报错Could not build the ssl module!
- Centos7 防火墙常用配置
- @所有人 Flink Forward Asia 2020 议题征集倒计时!
- Linux中VI / VIM 常用操作练习
- 电脑重装系统后Win11扬声器无插座信息如何解决?
- win10开机自动拨号上网
- Recommended software
- linux下搭建svn仓库
- 基于php的海贼王动漫网站
热门文章
- canon 打印机 android,Canon PRINT Inkjet/SELPHY
- DELPHI teechart 报 [Fatal Error] Required package 'TEE' not found
- android实现地图api公交线路查询,android实现查询公交车还有几站的功能
- 百度语音识别+百度ERNIE-Gram+pyaudio麦克风录音(NLP自然语言处理)
- arm 关于m a r系列区别
- office批量授权版本下载地址
- 除了芝麻代理,近几年国内比较好的代理IP有哪些?
- Mybatis-plus学习笔记
- 大数据技术之_08_Hive学习_03_查询+函数
- 分享几个免费开源api