公司最近要做一套类似于百度统计的功能,于是收集整理了其中根据UserAgent获取客户端平台及浏览器信息的资料,不仅仅试用于Javascript,其他语言也可以参考相应正则进行改进。当然,肯定有不足的地方,希望大家多多帮忙测试补充完善。

在线测试地址:http://blog.cxycs.com/demos/client/browser.html

Javascript代码:

<script type="text/javascript">
document.getElementById("useragent").innerHTML = navigator.userAgent.toLocaleUpperCase();
window.document.getElementById("platform").innerHTML = getPlatformName();
window.document.getElementById("browser").innerHTML = getBrowserName(); function getPlatformName(){
var xp = /WINDOWS NT 5.[\d]+/;
var win7 = /WINDOWS NT 6.[\d]+/;
var win8 = /WINDOWS NT 7.[\d]+/;
var winphone = /WINDOWS PHONE/;
var android = /ANDROID [\d\.]+/;
var iphone = /IPHONE [\d\_]+/;
var ipad = /IPAD/;
var userAgent = navigator.userAgent.toLocaleUpperCase();
if (xp.test(userAgent)) return 'Windows XP';
if (win7.test(userAgent)) return 'Windows 7';
if (win8.test(userAgent)) return 'Windows 8';
if (winphone.test(userAgent)) return 'Windows Phone';
if (android.test(userAgent)) return android.exec(userAgent);
if (iphone.test(userAgent)) return 'IPhone';
if (ipad.test(userAgent)) return 'IPad';
return 'Other Platform';
} function getBrowserName(){
var userAgent = navigator.userAgent.toLocaleUpperCase();
var msie = /MSIE [\d\.]+/;
var firefox = /FIREFOX\/[\d\.]+/;
var chrome = /CHROME\/[\d\.]+/;
var safari = /SAFARI\/[\d\.]+/;
var opero = /OPR\/[\d\.]+/;
var se = /SE \d/;
var mi = /XIAOMI\/MIUIBROWSER/;
var uc = /UCBROWSER/;
var android = /ANDROID [\d\.]+/;
if (msie.test(userAgent) && se.test(userAgent)) return '搜狗浏览器兼容模式';
if (msie.test(userAgent)) return msie.exec(userAgent);
if (se.test(userAgent)) return '搜狗浏览器高速模式';
if (uc.test(userAgent)) return 'UC浏览器';
//if (mi.test(userAgent)) return '小米手机内置浏览器';
if (android.test(userAgent)) return '安卓手机浏览器';
if (opero.test(userAgent)) return 'opera浏览器';
if (chrome.test(userAgent)) return chrome.exec(userAgent);
if (safari.test(userAgent)) return safari.exec(userAgent);
return '其他';
}
</script>

Javascript UserAgent 获取平台及浏览器信息的更多相关文章

  1. javascript 常用获取页面宽高信息 API

    在页面的构建中 常常会需要获取页面的一些宽高信息,例如实现 惰性加载图片 需要获取页面的可见区域高度 和 已滚动区域的高度,以判断图片所在位置是否可见来决定加载图片的时间, 花点时间整理了一下,获取页 ...

  2. html+javascript+soap获取webservice免费天气预报信息

    转自:http://blog.163.com/hubeimeiyu@126/blog/static/8004881020118303318687/ 首先,也是最重要的是互联网上免费的天气预报源:htt ...

  3. php 获取客户端的浏览器信息

     就是访问的时候,通过服务端来判断用户是否为移动端,如果是的话就重定向(移动端的页面).事实上现在都是一套搞定的了. 但是还是记录一下吧.没准以后用的到   http://detectmobilebr ...

  4. (效果五)js获取客户端ip地址及浏览器信息

    在前端开发的时候,有时候为了测试需要得到访问客户的ip地址.虽说是后端来做的,但是我们前端也可以完成. 先说下获取用户ip地址,包括像ipv4,ipv6,掩码等内容,但是大部分都要根据浏览器的支持情况 ...

  5. JavaScript获取浏览器信息的方法

    Window有navigator对象让我们得知浏览器的全部信息.我们可以利用一系列的API函数得知浏览器的信息. JavaScript代码如下: ? 1 2 3 4 5 6 7 8 9 10 11 1 ...

  6. java:JavaScript2:(setTimeout定时器,history.go()前进/后退,navigator.userAgent判断浏览器,location.href,五种方法获取标签属性,setAttribute,innerHTML,三种方法获取form表单信息,JS表单验证,DOM对象,form表单操作)

    1.open,setTimeout,setInterval,clearInterval,clearTimeout <!DOCTYPE> <html> <head> ...

  7. 获取浏览器信息 c#

    Request.Browser.MajorVersion.ToString();//获取客户端浏览器的版本号 Request.Browser.Version.ToString();//获取客户端浏览器 ...

  8. JAVASCRIPT和JQUERY判断浏览器信息总汇(备忘)

    <script type="text/javascript">        //jquery判断浏览器信息        $(function(){          ...

  9. js获取浏览器信息及版本(兼容IE)

    获取浏览器信息方法有很多种,但是要是兼容ie旧版本就有点麻烦了,因为很多方法在旧版本ie是不支持的,所以ie我做了单独处理,但是目前还有小问题,就是想显示QQ浏览器,搜狗浏览器..这样的,这样还实现不 ...

随机推荐

  1. chrome输入框记住密码导致背景黄色的解决方案

    在form头部增加以下内容 <input type="text" style="display:hidden;"> <input type=& ...

  2. QTableView使用自定义委托(QItemDelegate)

    需要在表格中绘制流程图,主要有箭头,方向,颜色,字符串,由于QTableView没有可用的绘制函数,所以需要自己去定义. 委托(delegate)继承QItemDelegate,模型(model)继承 ...

  3. CSS3 中FLEX快速实现BorderLayout布局

    学习完flex的布局模式之后,我们趁热打铁,来实现一个BoxLayout布局.什么是BoxLayout布局?那我们先上一个图看看 BoxLayout布局写过后端UI代码的编程者应该不陌生了,写前端的代 ...

  4. 浏览器阻止window.open的解决方案

    先分析一下浏览器为什么会阻止window.open吧:用户主动去触发事件的浏览器不会阻止,什么是用户主动触发的呢?就是当用户去点击的一瞬间就弹出这种浏览器是不会阻止的,如果是通过setTimeout定 ...

  5. 【pyhton】import math与import cmath

    import math与import cmath分别代表导入math模块和复数math模块 还有一种导入方式是 from math import sqrt 从math中单独导入sqrt 直接可以用sq ...

  6. Phonegap 3.0 设置APP是否全屏

    Phonegap 3.0 默认是全屏,如需要取消全屏,可手动修改config, 在APP/res/xml/config.xml文件可设置preference: <?xml version='1. ...

  7. ios7新特性1-UI变化、UIKit动态行为支持与Text Kit新接口

    iOS 7.0新特性1 iOS 7的UI经过了重新设计.另外,iOS7中引入了新的动画系统,便于创建2D和2.5D的游戏.多任务支持提升,点对点通讯以及其他重要的特征使iOS7相对于以往的SDK来说发 ...

  8. 如何用python语句获得Python的安装目录

    官方文档上有写的,sys.executable是当前Python解释器(或者其他Python实现)的路径去掉后面一个路径分隔符(Windows下是'\')后的部分即可 >>>impo ...

  9. 三大框架SSH(struts2+spring+hibernate)整合时相关配置文件的模板

    最近在学SSH三大框架的整合,在此对他们整合时相关配置文件做一简单的模板总结,方便以后复用! 首先是web.xml配置文件,这里面就配置一些简单的监听器.过滤器,包括spring核心配置文件appli ...

  10. css li 列表

    ul,li{list-style-type:none;padding:0;margin:0}