js判断浏览器(支持区分ie、firefox、opera、chrome、safari)

看到jquery的浏览器判断,并没完全符合我的要求,以下是jquery的正则表达式:

// Useragent RegExp
rwebkit = /(webkit)[ \/]([\w.]+)/,
ropera = /(opera)(?:.*version)?[ \/]([\w.]+)/,
rmsie = /(msie) ([\w.]+)/,
rmozilla = /(mozilla)(?:.*? rv:([\w.]+))?/,



以下针对自己的想法做了新的改进,支持区分ie、firefox、opera、chrome、safari,
另外版本号的取值也与jquery不同,jquery取得版本号可能是内核的版本号吧,以后再考虑改进改进:

// browser check-----start
var userAgent = navigator.userAgent, // userAgent
rMsie = /.*(msie) ([\w.]+).*/, // ie
rFirefox = /.*(firefox)\/([\w.]+).*/, // firefox
rOpera = /(opera).+version\/([\w.]+)/, // opera
rChrome = /.*(chrome)\/([\w.]+).*/, // chrome
rSafari = /.*version\/([\w.]+).*(safari).*/;// safari
jMeteor.browser = {};
var ua = userAgent.toLowerCase();
function uaMatch(ua) {
var match = rMsie.exec(ua);
if (match != null) {
return { browser : match[1] || "", version : match[2] || "0" };
}
var match = rFirefox.exec(ua);
if (match != null) {
return { browser : match[1] || "", version : match[2] || "0" };
}
var match = rOpera.exec(ua);
if (match != null) {
return { browser : match[1] || "", version : match[2] || "0" };
}
var match = rChrome.exec(ua);
if (match != null) {
return { browser : match[1] || "", version : match[2] || "0" };
}
var match = rSafari.exec(ua);
if (match != null) {
return { browser : match[2] || "", version : match[1] || "0" };
}
if (match != null) {
return { browser : "", version : "0" };
}
}
var browserMatch = uaMatch(userAgent.toLowerCase());
if (browserMatch.browser) {
jMeteor.browser[browserMatch.browser] = true;
jMeteor.browserName = browserMatch.browser;
jMeteor.browser.version = browserMatch.version;
jMeteor.browser.language = (navigator.language ? navigator.language
: navigator.userLanguage || "");
}
// browser check-----end




使用方法:

jMeteor.browser.msie //判断是否为ie,返回true则代表是
jMeteor.browserName //浏览器名称
jMeteor.browser.version //浏览器版本
jMeteor.browser.language //语言
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值