首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

辨别浏览器呈现引擎

2012-08-02 
识别浏览器呈现引擎?好久没有写很深入的文章了。这天看到别人写的文章,突发灵感,准备写写关于浏览器呈现引

识别浏览器呈现引擎

?

好久没有写很深入的文章了。

这天看到别人写的文章,突发灵感,准备写写关于浏览器呈现引擎的文章

写的好,大家要顶起哦

?

识别浏览器呈现引擎

什么是呈现引擎,网上可以查到专业词汇,我这里就不说明了。

现在主流的呈现引擎有五大种:IE,Gecko,Webkit,KHTML和Opera

不同的呈现引擎,对同一段html会有不同的效果,怎么识别他们就成了跨平台的

必须解决的问题。

识别以上的引擎主要方法,都是通过解析用户代理字符串来实现鉴别和判断的

?

先拿最麻烦的Opera来说。

要识别Opera,就必须的检测window.opera对象。Opera 5及更高的版本中都有这样的对象,

以保持与浏览器相关的标识信息以及与浏览器直接交互。在Opera 7.6及更高版本中,调用

version()方法可以返回一个表示浏览器版本的字符串,而这样也是获得Opera版本好的最佳方式

说以我们可以这样操作

?

?

if(window.opera){engin.ver = window.opera.version();engin.opera = parseFloat(engin.ver);}

?

?

?

好了。搞定Opera

下面说说Webkit,对于怎么判断他最简单的方法就是判断独一无二的AppleWebkit,具体的

?

?

var ua = navigator.userAgent;if(/AppleWebkit\/(\+S)/.test(ua)){engin.ver = RegExp["$1"];engin.webkit = parseFloat(engin.ver);}

?对于KHTML来说,和webkit差不多,但在早期的时候KHTML是用KHTML来判断的,以后是用Konqueror

?

进行处理的

?

var ua = navigator.userAgent;if(/KHTML\/(\S+)/.test(ua) || /Konqueror\/([^;]+)/.test(ua){engin.ver = RegExp["$1"];engin.khtml = parseFloat(engin.ver);}

?同理下去:

Gecko也是如此
var ua = navigator.userAgent;if(/rv:\/([^\]+) /Gecko\/\d{8}/.test(ua)){engin.ver = RegExp["$1"];engin.gecko = parseFloat(engin.ver);}
?下面处理IE? 对于IE来说,IE的版本号位于字符串MSIE的后面,一个分好的前面因此相应的正则表达式? 就非常的简单了? 如下:

?

var ua = navigator.userAgent;if(/MSIE ([^;]+)/.test(ua)){engin.ver = RegExp["$1"];engin.gecko = parseFloat(engin.ver);}
?

?

写的不好,大家不好说哦

哈哈

热点排行