- Navigator对象
包含有关浏览器的信息(所有浏览器都支持)
【对象集合】
plugins -- 安装在浏览器中的插件数组
【对象属性】
appCodeName -- 浏览器的代码名(字符串表示)
appMinorVersion -- 浏览器的次级版本
appName -- 浏览器名称(字符串表示)
appVersion -- 浏览器的平台和版本信息(字符串表示)
browserLanguage -- 当前浏览器的语言
cookieEnabled -- 如果启用cookie返回true,否则返回false
cpuClass -- 浏览器系统的cpu等级
onLine -- 返回指明系统是否处于脱机模式的布尔值
platform -- 运行浏览器的操作系统平台(字符串表示)
systemLanguage -- 返回OS使用的默认语言
userLanguage -- 返回OS的自然语言设置
userAgent -- 用户代理头的字符串表示
【对象方法】
javaEnabled -- 如果启用java返回true,否则返回false
taintEnabled -- 如果启用了数据污点返回true,否则返回false
navigator中最重要的是userAgent属性,返回包含浏览器版本等信息的字符串;
cookieEnabled使用它可以判断用户浏览器是否开启cookie。
javaScript判断浏览器类型一般有两种办法,一种是根据各种浏览器独有的属性来分辨,另一种是通过分析浏览器的userAgent属性来判断(版本只能通过分析userAgent获得)
- 各浏览器独有属性
-moz- 火狐firefox
-ms- IE
-webkit- 谷歌chrome、苹果safari
-o- 欧朋Opera
- userAgent
var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串
//判断是否IE<11浏览器
userAgent.indexOf("compatible") > -1 && userAgent.indexOf("MSIE") > -1;
//IE11
userAgent.indexOf('Trident') > -1 && userAgent.indexOf("rv:11.0") > -1;
//Edge
userAgent.indexOf("Edg") > -1 && !(userAgent.indexOf("compatible") > -1 && userAgent.indexOf("MSIE") > -1);
//网上很多写的是Edge,但我的电脑 navigator.userAgent 返回值为Edg
//Firefox
userAgent.indexOf("Firefox") > -1;
//Opera
userAgent.indexOf("Opera") > -1 || userAgent.indexOf("OPR") > -1;
//Chrome
userAgent.indexOf("Chrome") > -1 && userAgent.indexOf("Safari") > -1 && userAgent.indexOf("Edge") == -1 && userAgent.indexOf("OPR") == -1;
//Safari
userAgent.indexOf("Safari") > -1 && userAgent.indexOf("Chrome") == -1 && userAgent.indexOf("Edge") == -1 && userAgent.indexOf("OPR") == -1;
- IE
<!--[if !IE]><!--> 除IE外都可识别 <!--<![endif]-->
<!--[if IE]> 所有的IE可识别 <![endif]-->
<!--[if IE 6]> 仅IE6可识别 <![endif]-->
<!--[if lt IE 6]> IE6以及IE6以下版本可识别 <![endif]-->
<!--[if gte IE 6]> IE6以及IE6以上版本可识别 <![endif]-->
<!--[if IE 7]> 仅IE7可识别 <![endif]-->
<!--[if lt IE 7]> IE7以及IE7以下版本可识别 <![endif]-->
<!--[if gte IE 7]> IE7以及IE7以上版本可识别 <![endif]-->
<!--[if IE 8]> 仅IE8可识别 <![endif]-->
<!--[if IE 9]> 仅IE9可识别 <![endif]-->
IE:只有IE支持创建ActiveX控件,所以ActiveXObject函数是其他浏览器没有的。只需判断window对象存在 ActiveXObject函数,就明确判断出当前浏览器是IE。
Firefox:Firefox中的DOM元素都有一个getBoxObjectFor函数,用来获取该DOM元素的位置和大小。这是Firefox独有的,判断它即可分辨当前浏览器是Firefox。(IE对应的中是 getBoundingClientRect函数)
Opera:Opera提供了专门的浏览器标志-- window.opera属性。
Safari:openDatabase函数是其他浏览器没有的,可做为判断Safari的标志。
Chrome:和Firefox一样都有一个MessageEvent函数,但Chrome并没有Firefox的getBoxObjectFor 函数,根据这两个条件可判断Chrome浏览器。