声明:本博客的知识点摘录自《JavaScript高级程序设计(第三版)》第九章,如有冒犯,请联系删除
不同的浏览器所基于的呈现引擎也不一样,在编写代码的时候,有时可能会检测呈现引擎,用以编写不同的代码来兼容各个浏览器。下面说说各大浏览器所基于的呈现引擎:
- Firefox、Camino、Netscape浏览器使用的是Gecko引擎;
- IE浏览器使用的是IE引擎;
- Safari、Chrome浏览器使用的是Webkit引擎;
- Opera浏览器使用的是Opera引擎;
- 移动浏览器(IOS、Android)使用的是Webkit引擎。
知道了各个浏览器所使用的引擎后,最重要的就是怎么样检测它:
var client = function(){
var engine = {
//呈现引擎
ie: 0,
gecko: 0,
webkit: 0,
khtml: 0,
opera: 0,
//具体的版本号
ver: null
};
//在此检测呈现引擎、平台和设备
return {
engine : engine
};
}();
var ua = navigator.userAgent;//通过检测用户代理字符串
if (window.opera){
engine.ver = window.opera.version();
engine.opera = parseFloat(engine.ver);
} else if (/AppleWebKit\/(\S+)/.test(ua)){
engine.ver = RegExp["$1"];
engine.webkit = parseFloat(engine.ver);
} else if (/KHTML\/(\S+)/.test(ua)) {
engine.ver = RegExp["$1"];
engine.khtml = parseFloat(engine.ver);
} else if (/rv:([^\)]+)\) Gecko\/\d{8}/.test(ua)){
engine.ver = RegExp["$1"];
engine.gecko = parseFloat(engine.ver);
} else if (/MSIE ([^;]+)/.test(ua)){
engine.ver = RegExp["$1"];
engine.ie = parseFloat(engine.ver);
}
over!!!