navigator对象是最早实现的BOM对象之一,Netscape Navigator 2.0和IE 3.0引入了它。它包含大量有关Web浏览器的信息。它也是window对象的属性,可以用window.navigator引用它,也可以用navigator引用。
虽然微软公司最初把Netscape的浏览器称为navigator,但navigator对象成了一种事实标准,用于提供Web浏览器的信息。(微软除navigator外,还有自己的对象clientInfomation,但它们两个提供的数据完全相同。)
同样,缺乏标准阻碍了navigator对象的发展,因为各个浏览器决定支持该对象的属性和方法。下表列出了最常用的属性和方法以及最常用的四种浏览器(IE、Mozilla、Opera和Safari)中哪个支持它们。
属性/方法 | 说 明 | IE | Moz | Op | Saf |
appCodeName | 浏览器代码名的字符串表示(如"Mozilla") | × | × | × | × |
appName | 官方浏览器名的字符串表示 | × | × | × | × |
appMinorVersion | 额外版本信息的字符串表示 | × | - | - | - |
appVersion | 浏览器版本信息的字符串表示 | × | × | × | × |
browserLanguage* | 浏览器或操作系统的语言的字符串表示 | × | - | × | - |
cookieEnabled | 说明是否启用了cookie的Boolean值 | × | × | × | - |
cpuClass | CPU类别的字符串表示("x86"、"68K"、"Alpha"、"PPC"或"other") | × | - | - | - |
javaEnabled() | 说明是否启用了Java的Boolean值 | × | × | × | × |
language | 浏览器语言的字符串表示 | - | × | × | × |
(续)
属性/方法 | 说 明 | IE | Moz | Op | Saf |
mimeTypes | 注册到浏览器的mime类型的数组 | - | × | × | × |
onLine | 说明浏览器是否连接到因特网上的Boolean值 | × | - | - | - |
oscpu | 操作系统或CPU的字符串表示 | - | × | - | - |
platform | 运行浏览器的计算机平台的字符串表示 | × | × | × | × |
plugins | 安装在浏览器中的插件的数组 | × | × | × | × |
preference() | 用于设置浏览器首选项的函数 | - | × | × | - |
product | 产品名的字符串表示(如"Gecko") | - | × | - | × |
productSub | 有关产品的额外信息的字符串表示(如Gecko版本) | - | × | - | × |
opsProfile |
| - | - | - | - |
securityPolicy |
| - | × | - | - |
systemLanguage* | 操作系统语言的字符串表示 | × | - | - | - |
taintEnabled() | 说明是否启用了数据感染的Boolean值 | × | × | × | × |
userAgent | 用户代理头字符串的字符串表示 | × | × | × | × |
userLanuage* | 操作系统语言的字符串表示 | × | - | - | - |
userProfile | 允许访问浏览器用户档案的对象 | × | - | - | - |
vendor | 品牌浏览器名的字符串表示(如"Netscape6"或"Netscape") | - | × | - | × |
vendorSub | 品牌浏览器的额外信息的字符串表示(如Netscape的版本) | - | × | - | × |
* 大多数情况下,browserLanguage、systemLanguage和userLanguage相同。
在判断浏览器页面采用的是哪种浏览器方面时,navigator对象非常有用。在因特网上可迅速检索到许多检测浏览器的方法,它们都大量地利用了navigator对象。第9章将介绍如何用navigator对象检测浏览器及操作系统。