redFox.核心之 浏览器探测
2011-03-30 07:51 毛狮子 阅读(580) 评论(0) 收藏 举报在redFox核心框架中通过正则匹配对navigator.userAgent来获取浏览器内核和版本信息。虽然此方法已经不是完美的方案,但总体还是可行的。至少能应用在大部分中,由于我还未了解过各浏览器的特性方面的东西,所以现在就先用此方案来完成此工作。不多说,直接看下面代码吧
//#NEWBLOCK
//!获取浏览器类型和版本号,通过navigator.userAgent来获取
BROWERS = (function(UA,name,ver,iver,tmp,isIE,ename,ever){
//匹配浏览器类型
tmp = /\b(opera|msie|firefox|chrome|maxthon|safari).([\d\.]*)\b/i.exec(UA)||[];
name = (tmp[1]||"unknown").toLowerCase();
//浏览器版本号
ver = (name=="safari"||name=="opera"?/\bVersion.([\d\.]*)\b/i.exec(UA)[1]:tmp[2])||"unknown";
iver = parseInt(ver);
isIE = name=="msie";
//匹配浏览器内核引擎
tmp = /\b(presto|gecko|khtml|webkit)\/([\d\.]*)\b/i.exec(UA)||[];
ename = (tmp[1]||"unknow").toLowerCase();
ever = tmp[2]||"unknow";
/*//匹配脚本运行平台
tmp = (/\b(win|mac|adobeair|X11|linux)/i.exec(UA)||[]);
tmp = (tmp[1]||"unknown").toLowerCase();*/
return {
UA : UA, //userAgent
name : name, //浏览器类型
ver : ver, //浏览器版本号
isIE : isIE, //如果是IE浏览器
"isIE-" : isIE&&iver<6, //如果是IE浏览器,并版本号小于4的
isIE6 : isIE&&iver==6, //如果是IE浏览器,并版本号是6的
isIE7 : isIE&&iver==7, //如果是IE浏览器,并版本号是7的
isIE8 : isIE&&iver==8, //如果是IE浏览器,并版本号是8的
isIE9 : isIE&&iver==9, //如果是IE浏览器,并版本号是9的
isOpera : name=="opera", //如果是Opera浏览器
isFireFox : name=="firefox", //如果是FierFox浏览器
isSafari : name=="safari", //如果是Safari浏览器
isChrome : name=="chrome", //如果是chrome浏览器
isMaxthon : name=="maxthon", //如果是maxthon浏览器
isGecko : ename=="gecko", //如果是gecko内核
isWebkit : ename=="webkit", //如果是webkit内核
isKHTML : ename=="khtml", //如果是khtml内核
isPresto : ename=="presto", //如果是presto内核
/*isWindows : tmp=="win", //如果是windows系统
isMac : tmp=="mac", //如果是Mac系统
isAir : tmp=="adoberair", //如果是Air平台
isUnix : tmp=="X11", //如果是Unix系统
isLinux : tmp=="linux", //如果是Linux系统*/
engine : {name:ename,ver:ever}, //浏览器内核信息
toString : function(){
return this.name+""+this.ver;
}
};
})(navigator.userAgent);
//-->(^_^)<I Love redFox>(-_-)<--
浙公网安备 33010602011771号