js 浏览器版本检测

整理了一下浏览器检测的js脚本 分享给大家

浏览器检测一般都是在网页打开的时候执行 使用js的闭包来实现页面加载以后执行的脚本

(function(){
   //页面加载后执行的脚本
})() ;

 检测浏览器版本的js如下:

(function () {
	
	window.sys = {};											//让外部可以访问,保存浏览器信息对象
	var ua = navigator.userAgent.toLowerCase();	//获取浏览器信息字符串
	var s;															//浏览器信息数组,浏览器名称+版本
	
	/*
	if ((/msie ([\d.]+)/).test(ua)) {
		s = ua.match(/msie ([\d.]+)/);
		sys.ie = s[1];
	}
	
	if ((/firefox\/([\d.]+)/).test(ua)) {
		s = ua.match(/firefox\/([\d.]+)/);
		sys.firefox = s[1];
	}
	
	if ((/chrome\/([\d.]+)/).test(ua)) {
		s = ua.match(/chrome\/([\d.]+)/);
		sys.chrome = s[1];
	}
	
	if ((/opera\/.*version\/([\d.]+)/).test(ua)) {
		s = ua.match(/opera\/.*version\/([\d.]+)/);
		sys.opera = s[1];
	}
	
	if ((/version\/([\d.]+).*safari/).test(ua)) {
		s = ua.match(/version\/([\d.]+).*safari/);
		sys.safari = s[1];
	}
	*/
	
	//通过三目运算符来替换上面的判断
	(s = ua.match(/msie ([\d.]+)/)) ? sys.ie = s[1] :
	(s = ua.match(/firefox\/([\d.]+)/)) ? sys.firefox = s[1] :
	(s = ua.match(/chrome\/([\d.]+)/)) ? sys.chrome = s[1] : 
	(s = ua.match(/opera\/.*version\/([\d.]+)/)) ? sys.opera = s[1] : 
	(s = ua.match(/version\/([\d.]+).*safari/)) ? sys.safari = s[1] : 0;
	
	
})();



alert(sys.safari); //调用

 稍微解析一下:  将sys设置为window对象的属性供外部访问 该属性实质上是一个对象,该对象中保存着各个浏览器的信息

  通过正则表达式来获取浏览器的版本号  通过括号来进行分组(/msie ([\d.]+)/) ,match返回匹配该正则子串 返回数组

posted @ 2013-12-27 13:27  廖凯林  阅读(560)  评论(0编辑  收藏  举报