当今浏览器五花八门,除了我们熟知的IE, Firefox, Opera, Safari,chrome 浏览器之外,世界上还有近百种浏览器。
在网站前端开发中,浏览器兼容性是前端开发框架要解决的第一个问题,要解决兼容性问题就得首先准确判断出浏览器的类型及其版本。
JavaScript是前端开发的主要语言,通过编写JavaScript判断浏览器类型一般有两种办法,一种是根据各种浏览器独有的属性来分辨,另一种是通过分析浏览器的userAgent属性来判断的。在许多情况下,值判断出浏览器类型之后,还需判断浏览器版本才能处理兼容性问题,而判断浏览器的版本一般只能通过分析浏览器的userAgent才能知道。
虽然浏览器产品众多,但究其根本无外乎套用了别人的内核(内核包括IE,Netscape)改善了部分功能而已。随着各个浏览器的不断升级,浏览器间往往相互抄袭个字独有的属性也日趋整合。要想针对上述一种方法来区分往往也很难做到。
日前应公司内部项目需要用判断浏览器类型。对其方法做了一下整理,闲言少叙直接上js代码。
var ua = navigator.userAgent.toLowerCase();
if(window.ActiveXObject && ua.match(/msie ([\d.]+)/)) {
alert("MSIE");
}
if(ua.match(/firefox\/([\d.]+)/)){
alert("Firefox");
}
if(window.openDatabase && ua.match(/version\/([\d.]+).*safari/)) {
alert("Safari");
}
if(window.MessageEvent && !document.getBoxObjectFor && ua.match(/chrome\/([\d.]+)/)){
alert("Chrome");
}
if(window.opera && ua.match(/opera.([\d.]+)/)){
alert("opera");
}