javascript 学习笔记(六)浏览器类型及版本信息检测代码


Posted in Javascript onApril 08, 2011

下面的checkBrowser()函数主要检测了三种浏览器(IE, firefox, chrome),其它的浏览器的检测有兴趣的朋友可以自行添加检测代码!
HTML部分代码: (页面加载时执行检测函数)

<body onload="checkBrowser()"> 
<p id="userAgent"></p> 
<p id="browser"></p> 
</body>

javascript部分代码:
检测的原理主要根据 浏览器的用户代理报头nanigator.userAgent中提取到浏览器和类型及版本信息,利用正则表达式可以很容易的满足我们的需求,如对正则表达式不熟悉,可参照此文(正则表达式)
function check(reg) { 
var ug = navigator.userAgent.toLowerCase(); 
return reg.test(ug); 
} 
function checkBrowser() { 
var ug = navigator.userAgent.toLowerCase(); 
var userAgent = document.getElementById("userAgent"); 
userAgent.innerHTML = "浏览器的用户代理报头:" + ug; 
var browserType = ""; 
var ver = ""; 
//检测IE及版本 
var IE = ug.match(/msie\s*\d\.\d/); //提取浏览器类型及版本信息,注match()方法返回的是数组而不是字符串 
var isIE = check(/msie/); 
if(isIE) { 
browserType = "Internet Explorer"; 
ver = IE.join(" ").match(/[0-9]/g).join("."); //先用join()方法转化为字符串,然后用match()方法匹配到版本信息,再用join()方法转化为字符串 
} 
//检测chrome及版本 
var chrome = ug.match(/chrome\/\d\.\d/gi); 
var isChrome = check(/chrome/); 
if(isChrome) { 
browserType = "Chrome"; 
ver = chrome.join(" ").match(/[0-9]/g).join("."); 
} 
//检测firefox及版本 
var firefox = ug.match(/firefox\/\d\.\d/gi); 
var isFirefox = check(/firefox/); 
if(isFirefox) { 
browserType = "Firefox"; 
ver = firefox.join(" ").match(/[0-9]/g).join("."); 
} 
var browser = document.getElementById("browser"); 
browser.innerHTML = "您正在使用的浏览器为:" + browserType + "<span style='padding-left:15px;'>版本为:</span>" + ver; 
}

PS:各浏览器的用户代理信息如下:
 
IE:Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; BOIE9;ZHCN);
firefox:Mozilla/5.0 (Windows NT 6.1; rv:2.0) Gecko/20100101 Firefox/4.0;
chrome:Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.13 (KHTML, like Gecko) Chrome/9.0.597.98 Safari/534.13
Javascript 相关文章推荐
实现超用户体验 table排序javascript实现代码
Jun 22 Javascript
jQuery 绑定事件到动态创建的元素上的方法实例
Aug 18 Javascript
Jquery搜索父元素操作方法
Feb 10 Javascript
使用AngularJS对路由进行安全性处理的方法
Jun 18 Javascript
jQuery实现有动画淡出效果的二级折叠菜单代码
Oct 17 Javascript
实例代码详解javascript实现窗口抖动及qq窗口抖动
Jan 04 Javascript
神奇!js+CSS+DIV实现文字颜色渐变效果
Mar 16 Javascript
前端自动化开发之Node.js的环境搭建教程
Apr 01 Javascript
Angular排序实例详解
Jun 28 Javascript
react native与webview通信的示例代码
Sep 25 Javascript
解决Vue+Element ui开发中碰到的IE问题
Sep 03 Javascript
微信小程序授权登陆及每次检查是否授权实例代码
Sep 18 Javascript
javascript学习笔记(五)正则表达式
Apr 08 #Javascript
javascript学习笔记(三)显示当时时间的代码
Apr 08 #Javascript
javascript 学习笔记(一)DOM基本操作
Apr 08 #Javascript
jQuery 名称冲突的解决方法
Apr 08 #Javascript
js 事件处理函数间的Event物件是否全等
Apr 08 #Javascript
Javascript 八进制转义字符(8进制)
Apr 08 #Javascript
JavaScript中判断函数是new还是()调用的区别说明
Apr 07 #Javascript
You might like
PHP下利用header()函数设置浏览器缓存的代码
2010/09/01 PHP
PHP实现动态web服务器方法
2015/07/29 PHP
php HTML无刷新提交表单
2016/04/05 PHP
javascript中获取下个月一号,是星期几
2012/06/01 Javascript
jquery的选择器的使用技巧之如何选择input框
2013/09/22 Javascript
JS中怎样判断undefined(比较不错的方法)
2014/03/27 Javascript
了不起的node.js读书笔记之node.js中的特性
2014/12/22 Javascript
多个jQuery版本共存的处理方案
2015/03/17 Javascript
JavaScript多图片上传案例
2015/09/28 Javascript
jQuery实现区域打印功能代码详解
2016/06/17 Javascript
javascript的document中的动态添加标签实现方法
2016/10/24 Javascript
React-Native实现ListView组件之上拉刷新实例(iOS和Android通用)
2017/07/11 Javascript
vue数据传递--我有特殊的实现技巧
2018/03/20 Javascript
JS实现的3des+base64加密解密算法完整示例
2018/05/18 Javascript
微信小程序使用swiper组件实现层叠轮播图
2018/11/04 Javascript
vue实现侧边栏导航效果
2019/10/21 Javascript
js实现蒙版效果
2020/01/11 Javascript
详解JS函数防抖
2020/06/05 Javascript
[03:40]DOTA2抗疫特别篇《英雄年代》
2020/02/28 DOTA
Python中线程编程之threading模块的使用详解
2015/06/23 Python
Python中操作mysql的pymysql模块详解
2016/09/13 Python
python rsa 加密解密
2017/03/20 Python
Python字符串逆序输出的实例讲解
2019/02/16 Python
Python环境Pillow( PIL )图像处理工具使用解析
2019/09/12 Python
在python下实现word2vec词向量训练与加载实例
2020/06/09 Python
CSS3 实现弹幕的示例代码
2017/08/07 HTML / CSS
美国内衣品牌:Leonisa
2016/08/14 全球购物
去加拿大的旅行和假期:Canadian Affair
2016/10/25 全球购物
美国照明、家居装饰和家具购物网站:Bellacor
2017/09/20 全球购物
Android面试题及答案
2015/09/04 面试题
OSPF有什么优点?为什么OSPF比RIP收敛快?
2013/02/13 面试题
节约能源标语
2014/06/17 职场文书
会计人员演讲稿
2014/09/11 职场文书
委托书格式要求
2015/01/28 职场文书
2015年社区关工委工作总结
2015/04/03 职场文书
Go语言基础知识点介绍
2021/07/04 Golang