在网站前端开发中,浏览器兼容性是前端开发框架要解决的第一个问题,要解决兼容性问题就得首先准确判断出浏览器的类型及其版本,而判断浏览器的版本一般只能通过分析浏览器的userAgent才能知道.
一、以下是各种浏览器的userAgent信息:
(一)IE各个版本典型的userAgent如下:
Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0) // IE8
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2) // IE7
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1) // IE6
Mozilla/4.0 (compatible; MSIE 5.0; Windows NT) // IE5
(二)Firefox几个版本的userAgent:
Mozilla/5.0 (Windows; U; Windows NT 5.2) Gecko/2008070208 Firefox/3.0.1
Mozilla/5.0 (Windows; U; Windows NT 5.1) Gecko/20070309 Firefox/2.0.0.3
Mozilla/5.0 (Windows; U; Windows NT 5.1) Gecko/20070803 Firefox/1.5.0.12
(三)Opera提供了专门的浏览器标志,就是window.opera属性。Opera典型的userAgent如下:
Opera/9.27 (Windows NT 5.2; U; zh-cn)
Opera/8.0 (Macintosh; PPC Mac OS X; U; en)
Mozilla/5.0 (Macintosh; PPC Mac OS X; U; en) Opera 8.0
(四)Safari浏览器中有一个其他浏览器没有的openDatabase函数,可做为判断Safari的标志。Safari典型的userAgent如下:
Mozilla/5.0 (Windows; U; Windows NT 5.2) AppleWebKit/525.13 (KHTML, like Gecko) Version/3.1 Safari/525.13
Mozilla/5.0 (iPhone; U; CPU like Mac OS X) AppleWebKit/420.1 (KHTML, like Gecko)
Version/3.0 Mobile/4A93 Safari/419.3
(五)Chrome的userAgent如下:
Mozilla/5.0 (Windows; U; Windows NT 5.2) AppleWebKit/525.13 (KHTML, like Gecko)
Chrome/0.2.149.27 Safari/525.13
(六)Apple Inc的userAgent如下:
Apple iPhone : Mozilla/5.0 (iPhone; U; CPU iPhone OS 3_0 like Mac OS X; en-us)
AppleWebKit/420.1 (KHTML, like Gecko) Version/3.0 Mobile/1A542a Safari/419.3 iPod Touch : Mozilla/5.0 (iPod; U; CPU iPhone OS 3_1_1 like Mac OS X; en-us)
AppleWebKit/528.18 (KHTML, like Gecko) Mobile/7C145 Apple iPad : Mozilla/5.0 (iPad; U; CPU OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B367 Safari/531.21.10
二、以下是判断各浏览器版本:
if navigator.userAgent.indexOf(”MSIE”)>0) {} //判断是否IE浏览器
if(isFirefox=navigator.userAgent.indexOf(”Firefox”)>0){ } //判断是否火狐浏览器
if(isSafari=navigator.userAgent.indexOf(”Safari”)>0) {} //判断是否Safari浏览器
if(isSafari=navigator.userAgent.indexOf(”Opera”)>0) {} //判断是否Opera浏览器
var sUserAgent = navigator.userAgent.toLowerCase();
var bIsIpad = sUserAgent .match(/ipad/i) == "ipad"; //判断是否为 ipad
var bIsIphoneOs = sUserAgent .match(/iphone os/i) == "iphone os"; //判断是否为iphone os
var bIsMidp = sUserAgent .match(/midp/i) == "midp"; //判断是否为 midp
var bIsUc = sUserAgent .match(/ucweb/i) == "ucweb"; //判断是否为 ucweb
var bIsAndroid = sUserAgent .match(/android/i) == "android"; //判断是否为 android
var bIsCE = sUserAgent .match(/windows ce/i) == "windows ce"; //判断是否为 windows ce
var bIsWM = sUserAgent .match(/windows mobile/i) == "windows mobile"; //判断是否为windows mobile
三、判断浏览器类型:
if (navigator.userAgent.indexOf(”MSIE”)>0){} //是否是IE浏览器 (注:navigator.userAgent是描述用户代理信息。ie11已经不支持了,ie11不在包含MSIE字段)
if (navigator.userAgent.indexOf(”MSIE 6.0″)>0){} //IE6.0
if (navigator.userAgent.indexOf(”MSIE 7.0″)>0){} //IE7.0
if (navigator.userAgent.indexOf(”MSIE 8.0″)>0){} //IE8.0
四、使用Jquery判断浏览器类型和浏览器版本号的方法:
$(document).ready(function(){
varbrow=$.browser;
varbInfo="";
if(brow.msie){bInfo="MicrosoftInternetExplorer"+brow.version;}
if(brow.mozilla){bInfo="MozillaFirefox"+brow.version;}
if(brow.safari){bInfo="AppleSafari"+brow.version;}
if(brow.opera){bInfo="Opera"+brow.version;}
alert(bInfo);
});
注意:Query 从 1.9 版开始,移除了 $.browser 和 $.browser.version , 取而代之的是 $.support 方法