您的位置:首页 > Web前端 > JavaScript

js 浏览器版本检测

2013-12-27 13:27 183 查看
整理了一下浏览器检测的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返回匹配该正则子串 返回数组
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: