redFox.核心之 浏览器探测
2011-03-30 07:51 毛狮子 阅读(553) 评论(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>(-_-)<--