Javascript UserAgent 获取平台及浏览器信息
公司最近要做一套类似于百度统计的功能,于是收集整理了其中根据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 获取平台及浏览器信息的更多相关文章
- javascript 常用获取页面宽高信息 API
在页面的构建中 常常会需要获取页面的一些宽高信息,例如实现 惰性加载图片 需要获取页面的可见区域高度 和 已滚动区域的高度,以判断图片所在位置是否可见来决定加载图片的时间, 花点时间整理了一下,获取页 ...
- html+javascript+soap获取webservice免费天气预报信息
转自:http://blog.163.com/hubeimeiyu@126/blog/static/8004881020118303318687/ 首先,也是最重要的是互联网上免费的天气预报源:htt ...
- php 获取客户端的浏览器信息
就是访问的时候,通过服务端来判断用户是否为移动端,如果是的话就重定向(移动端的页面).事实上现在都是一套搞定的了. 但是还是记录一下吧.没准以后用的到 http://detectmobilebr ...
- (效果五)js获取客户端ip地址及浏览器信息
在前端开发的时候,有时候为了测试需要得到访问客户的ip地址.虽说是后端来做的,但是我们前端也可以完成. 先说下获取用户ip地址,包括像ipv4,ipv6,掩码等内容,但是大部分都要根据浏览器的支持情况 ...
- JavaScript获取浏览器信息的方法
Window有navigator对象让我们得知浏览器的全部信息.我们可以利用一系列的API函数得知浏览器的信息. JavaScript代码如下: ? 1 2 3 4 5 6 7 8 9 10 11 1 ...
- java:JavaScript2:(setTimeout定时器,history.go()前进/后退,navigator.userAgent判断浏览器,location.href,五种方法获取标签属性,setAttribute,innerHTML,三种方法获取form表单信息,JS表单验证,DOM对象,form表单操作)
1.open,setTimeout,setInterval,clearInterval,clearTimeout <!DOCTYPE> <html> <head> ...
- 获取浏览器信息 c#
Request.Browser.MajorVersion.ToString();//获取客户端浏览器的版本号 Request.Browser.Version.ToString();//获取客户端浏览器 ...
- JAVASCRIPT和JQUERY判断浏览器信息总汇(备忘)
<script type="text/javascript"> //jquery判断浏览器信息 $(function(){ ...
- js获取浏览器信息及版本(兼容IE)
获取浏览器信息方法有很多种,但是要是兼容ie旧版本就有点麻烦了,因为很多方法在旧版本ie是不支持的,所以ie我做了单独处理,但是目前还有小问题,就是想显示QQ浏览器,搜狗浏览器..这样的,这样还实现不 ...
随机推荐
- 【实习记】2014-08-18使用curl排错http头的content-length
总结一,用curl排错Content-Length设置错误,误导了客户端. 访问/cgi-bin/txproj_list时,firebug显示总是不多不少15秒,调试其他问题时郁闷. fire ...
- 彻底删除sql2008r2
一. SQL2008卸载. 1.从控制面板卸载 1)点击计算机右下角“开始”,点击“控制面板” 2)点击“卸载程序”. 3)在程序列表中找到“Microsoft SQL Server 2008” ...
- asp.net取HTML控件值
asp.net取HTML控件值所有html表单里面的值控件,提交后都是以键值 key=value&key=value&……这样的形式提交给后台. radio也一样,会将选中的radio ...
- AS3.0定义变量的访问范围
在AS3.0中变量的默认访问范围是:internal:包内成员可以访问,包外不可访问.AS2.0默认访问范围是public
- Android特效--粒子效果之雨
1. 单个雨点的行为 2. 完善雨点的行为和构造下雨场景 3. 在XML中定义可以控制下雨的属性 --------------------------------------------------- ...
- 2016030202 - github中sshkey信息设置
根据github上面的提示生成ssh秘钥步骤 参考url:https://help.github.com/articles/generating-an-ssh-key/ 1.生成sshkey之前,检查 ...
- Linux Kernel Makefile Test
一.本文说明 本文为linux内核Makefile整体分析的续篇,是依据Linux内核Makefile体系的主要内容编写一个简要的测试工程.Linux内核Makefile体系就好像一只“大鸟”,而这篇 ...
- (bug更正)利用KVC和associative特性在NSObject中存储键值
KVC 一直没仔细看过KVC的用法,想当然的认为可以在NSObject对象中存入任意键值对,结果使用时碰到问题了. 一个简单的位移动画: CAKeyframeAnimation *keyPosi=[C ...
- iOS:导航栏的工具条和导航条
功能:用NAV视图控制器打开新的视图,默认工具条和导航条隐藏,双击显示之 // // main.m // Hello // // Created by lishujun on 14-8-28. // ...
- iPhone开发 - 常用库
iPhone开发 - 常用库 这里总结了iPhone开发者开发过程中可能需要的一些资源 如何用Facebook graphic api上传视频: http://developers.facebook. ...