公司要求做内部统计,要求监控客服玩游戏使用的浏览器的型号,是火狐的、谷歌的、还是IE的等等。

[code lang="javascript"]

/****
* 目前识别范围
* Microsoft Internet Explorer IE浏览器
* --> TheWorld 世界之窗
* --> TT浏览器
* --> 360浏览器
* --> 猎豹浏览器
* Mathon 傲游浏览器
* Opera Opera浏览器
* Firefox 火狐浏览器
* Chrome Chrome浏览器
* */
var browseInfo = {
//isMobile 是否移动终端
//browse 浏览器标识
//name 浏览器名称
//version 浏览器 版本
//extend 浏览器扩展标识
};

browseInfo.isMobile=!!navigator.userAgent.match(/AppleWebKit.*Mobile.*/);
alert(navigator.userAgent);
if(navigator.appName.indexOf("Microsoft Internet Explorer")!=-1 && document.all)
{
browseInfo.browse = "IE";
browseInfo.name = "IE浏览器";
browseInfo.extend = "";
var ver = navigator.userAgent.toLowerCase();
ver = ver.substring(ver.indexOf("msie"),ver.length);
ver = ver.substring(0,ver.indexOf(";"))
browseInfo.version = ver.replace("msie ","");
//世界之窗 浏览器
if(navigator.appVersion.toLowerCase().indexOf("theworld") > -1)
{
browseInfo.extend = "TheWord";
browseInfo.name = "世界之窗浏览器";
}else if(navigator.appVersion.toLowerCase().indexOf("tencenttraveler") > -1)
{
browseInfo.extend = "TT "+navigator.appVersion.substring(0,3);
browseInfo.name = "TT浏览器";
}else if(navigator.appVersion.toLowerCase().indexOf("lbbrowser") > -1)
{
browseInfo.extend = "LB";
browseInfo.name = "猎豹浏览器";
}else if(window.external+"" == "undefined" || window.external == undefined)
{
//网站不能识别你的浏览器 不支持window.external 很可能为360浏览器
browseInfo.extend = "360SE";
browseInfo.name = "360浏览器";
}
}else if(navigator.appName.indexOf("Netscape")!=-1)
{
browseInfo.browse = "Netscape";
browseInfo.version = navigator.appVersion.substring(0,3);
//移动 客户端
if(browseInfo.isMobile)
{
var vers = navigator.appVersion.substring(navigator.appVersion.indexOf("Mobile")+7,navigator.appVersion.length);
var arrs = vers.split(" ");
vers = arrs[arrs.length-1];
browseInfo.browse = vers.split("/")[0];
browseInfo.version = vers.split("/")[1];
browseInfo.name = browseInfo.browse+"手机浏览器";
}
////非移动 客户端
else
{
if(window.external && window.external.max_version && navigator.userAgent.toLowerCase().indexOf("maxthon")>=0 )
{
browseInfo.browse = "Mathon";
browseInfo.version = window.external.max_version;
browseInfo.name = "遨游浏览器";
}else if(navigator.userAgent.indexOf("Firefox")!=-1)
{
browseInfo.browse = "Firefox";
browseInfo.name = "火狐浏览器";
browseInfo.version = navigator.userAgent.substr((navigator.userAgent+"").lastIndexOf('/')+1);
}else if(navigator.userAgent.indexOf("Chrome")!=-1)
{
browseInfo.browse = "Chrome";
browseInfo.name = "Chrome浏览器";
var subVersion = navigator.appVersion.substring(navigator.appVersion.indexOf("Chrome")+7);
browseInfo.version = subVersion.substring(0,subVersion.indexOf(' '));
}
}
}else if(navigator.userAgent.indexOf("Opera")!=-1)
{
browseInfo.browse = "Opera";
browseInfo.name = "Opera浏览器";
browseInfo.version = navigator.appVersion.substring(0,3);
}else
{
browseInfo.browse = "Unknown";
browseInfo.name = "未知"+(browseInfo.isMobile?"手机":"")+"浏览器";
browseInfo.version = "1.0";
}
// if(browseInfo.browse != "IE" || browseInfo.extend != "")
// {
// alert("目前系统对IE浏览器兼容性比较好,\n你的浏览器为"+browseInfo.name+",\n如果办理业务建议使用系统自带的IE浏览器。");
// }
alert(browseInfo.name+"[version="+browseInfo.version+"]");

[/code]

js检测浏览器型号的更多相关文章

  1. jquery和js检测浏览器窗口尺寸和分辨率

    jquery和js检测浏览器窗口尺寸和分辨率,转载自网络,记录备忘 <script type="text/javascript">$(document).ready(f ...

  2. js检测浏览器中是否安装了flash播放插件

    这两天工作中需要在网页中嵌入flash小游戏,我使用的是swfobject.js version:1.5.其他方面都很好,唯独版本检测这里一直没有搞通,后来实在无奈之下,改用js来检测浏览器的flas ...

  3. js 检测浏览器

    首先还是IE浏览器的检测,一般我们在写代码的时候,出现的兼容性bug几乎都来自IE.从IE10以后,IE还算有点良心,支持了大部门的CSS3及H5的新特性.那么在IE10之前呢,就要才去别的手段来代替 ...

  4. 爬虫笔记之JS检测浏览器开发者工具是否打开

    在某些情况下我们需要检测当前用户是否打开了浏览器开发者工具,比如前端爬虫检测,如果检测到用户打开了控制台就认为是潜在的爬虫用户,再通过其它策略对其进行处理.本篇文章主要讲述几种前端JS检测开发者工具是 ...

  5. js检测浏览器是否支持某属性

    以检测浏览器是否支持 input 标签的 required 属性为例: var isSupport = 'required' in document.createElement('input');

  6. js检测浏览器屏幕宽度

    使用javascript脚本编写的一个能检测浏览器屏幕的宽度,当改变浏览器屏幕大小时,输出的数值也会随之改变.

  7. JS获取浏览器型号

    /**********************************浏览器型号搜集start*************************************/ var userAgent ...

  8. navigator,JS检测浏览器插件

    最早由Netscape Navigator 2.0引入的navigator对象,现在已经成为识别客户端浏览器的事实标准.虽然其它浏览器也通过其它方式提供了相同或相似的信息(例如,IE中的window. ...

  9. JS检测浏览器Adobe Reader插件

    Web应用中当我们希望向用户显示pdf文档时候,如果用户安装了Adobe Reader之类的pdf阅读器,就可以直接打开文档在浏览器中显示, 但是,当用户没有安装这类软件的时候,自然是打不开的,为了系 ...

随机推荐

  1. yousa_team团队项目——兼职平台网站 工作进度

    4月31 初步设计网站界面,功能以及数据库关系图 网站包括登陆注册界面,商家和学生都有个人主页,查看兼职信息界面和反馈界面,管理员有查看反馈界面,查看兼职市场,管理后台界面 登录注册界面实现用户的登陆 ...

  2. Xcode 报错信息

    1.CUICatalog: Invalid asset name supplied: 原因是: 使用的方法[UIImage imageNamed:@""]; @"&quo ...

  3. 新开博客 http://wylhyz.github.io/

    刚刚使用hexo在github pages上建立了静态博客,地址 http://wylhyz.github.io/

  4. flex布局浅谈和实例

    阿基米德曾说给我一个支点我可以撬动地球,而拥有flex基本可以撬动所有的布局. 1.flex布局基本介绍及效果展示 工欲善其事必先利其器,来来来,一起看下基础知识先(呵~,老掉牙,但是有用啊). ** ...

  5. mysql depended_query 优化案例一则

    月度利息统计sql优化 原因:写的sql语句复杂,理解起来有难度,另一方面,查询性能比较低 原来的语句如下: SELECT tp.year, tp.month, tp.bid_id, b.`title ...

  6. Dell_r720服务器部署

    没错,就是它-->                             前言:本来是写在word文档上作为笔记的,想想觉得不能浪费我在机房被狂虐两天总结出来的这点小经验, 还是分享一下吧,说 ...

  7. 重构第24天 分解复杂的判断(Remove Arrowhead Antipattern)

    理解: 当你的代码中有很深的嵌套条件时,花括号就会在代码中形成一个长长的箭头.我们经常在不同的代码中看到这种情况,并且这种情况也会扰乱代码的可读性. 如下代码所示,HasAccess方法里面包含一些嵌 ...

  8. 重构第9天:提取接口(Extract Interface)

    理解:提取接口的意思是,多于一个类共同使用某个类中的方法或属性,那么我们可以把这些方法和属性提出来,作为一个单独的接口.这样的好处是解除代码间的依赖,降低耦合性. 详解: 先看重构前的代码: publ ...

  9. 已超过传入消息(65536)的最大消息大小配额。若要增加配额,请使用相应绑定元素上的 MaxReceivedMessageSize 属性。

    错误:已超过传入消息(65536)的最大消息大小配额.若要增加配额,请使用相应绑定元素上的 MaxReceivedMessageSize 属性. 或者 错误:反序列化操作“GetAllUserData ...

  10. SQL Server中@@ROWCOUNT的用法

    SQL Server中@@ROWCOUNT返回受上一语句影响的行数,返回值类型为 int 整型. 如果行数大于 20 亿,则需要使用 ROWCOUNT_BIG. @@ROWCOUNT和@@ERROR变 ...