浏览器内核与JavaScript Navigator 对象
浏览器内核即 rendering engine ,渲染引擎,负责解释网页语法并渲染网页,所以不同浏览器内核对网页渲染效果不同,才会有css hack来兼容不同浏览器,使其显示效果一致。
浏览器内核分类
- Trident
也被称为“IE内核”
使用Trident内核的常见浏览器有:IE系列、360浏览器(IE内核+webkit双核,Trident为兼容模式)、windows phone 系统浏览器等
- Gecko
也被称为FirFox内核,跨平台内核
使用Gecko内核的常见浏览器有:Mozilla FireFox等
- Presto
Opera前内核,Opera 15及往后版本已改为Google Chrome的Blink内核
- Webkit
Safari内核,Chrome内核原型
Webkit内核常见的浏览器有:傲游浏览器、Safari、Android系统浏览器(Android4.4及以后系统浏览器切换到了Chromium,内核是Blink)等
- Blink
Google从webkit衍生出的自己的引擎,后由Google与Opera Software共同研发
Blink内核浏览器:Chrome(28及往后版本)、Opera(15及往后版本)、Yandex浏览器等
Navigator对象简介
Navigator对象包含有关浏览器以及操作系统的信息。
对象常用属性有
appCodeName
返回浏览器的代码名appMinorVersion
返回浏览器的次级版号appName
返回浏览器的名称appVersion
返回浏览器的平台和版本信息oscpu
浏览器正在运行的操作系统平台platform
返回运行浏览器的操作系统平台userAgent
返回由客户机发送服务器的user-agent头部的值plugins[]
是一个Plugin对象的数组,表示浏览器已经安装的插件
Navigator对象的方法
javaEnabled()
规定浏览器是否启用JavataintEnabled()
规定浏览器是否启用数据污点
userAgent属性
userAgent 属性是一个只读的字符串,声明了浏览器用于 HTTP 请求的用户代理头的值,一般由navigator.appCodeName 的值之后加上斜线和 navigator.appVersion 的值构成的。
如:
Chrome
FireFox
Safari
Chrome开发者工具设备模拟器iPhone 6、iPad、Nexus
|
|
|
|
所以利用userAgent可以判断当前浏览器内核、浏览器种类、移动端设备、以及操作系统
js判断浏览器内核
利用Navigator对象的userAgent属性判断浏览器内核