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即可。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这个流量统计是非常简单的,但我个人觉得也是挺实用的 这个也是我目前自己站用的流量统计 为什么做这个小东西,是因为,之前我用过某个知名的流量统计,但有几天突然就打不开了, 搞的我网页的下部分也跟着打不开,网页打开进度一直显示在加载,效果很不好 也用过有的流量统计,给插了广告之类, 同时我的站也是生成HTML,做站的都知道,批量生成HTML简直是要命的,如果今天我用了某个流量统计 那天他不做了,那我那些页面里面加载的代码是不是还都得重新做次? 当然,网上如cnzz.com,51la等等统计都是很不错的,功能齐全,同时可以代表一定的客观性,总而言之 适合自己的就好! 程序很简单 可以显示显示的来访IP,地区,一个简单的曲线表,一个概述,以及来访域名,和搜索引擎关键词等 简单而实用 adminstat.asp 是管理页面,就一个 mystat.asp和stat.asp 是统计流量的文件 DATA里面当然是数据库啦,数据库很大,有30多MB,因为里面加了IP地址的数据库,有30多万条,是我之前 商贸版IP地址查询里面,有兴趣的可以取下,以后会考虑分离掉,因为我现在自己用的是SQL的,所以不太 存在数据库文件大的问题,所以这边我暂时懒得改,以后有时间把IP地址库和数据库分离 调用: 当然你前面最好加上域名,比如我站里是: 关于删除历史的解释,系统会把每个访问的IP都记录下来,但为了系统效率,我们只记录3天内的详细IP 为了方便大家整合到自己的站里,我没有加任何的广告啊,还有adminstat.asp 后台管理的权限限制,如果大家要整合到自己站里 注意给访问页面添加权限
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值