转载: http://www.itlearner.com/code/js_ref/brow1.htm
包含了正在使用的 Navigator 的版本信息。
客户端对象 | |
实现版本 | Navigator 2.0 Navigator 3.0: 添加了 mimeTypes 和 plugins 属性;添加了 javaEnabled 和 taintEnabled 方法。 Navigator 4.0: 添加了 language 和 platform 属性;添加了 preference 方法。 |
创建源
JavaScript 客户端运行时刻引擎自动创建 navigator 对象。
描述
使用 navigator 对象可以决定你的用户正在使用的 Navigator 的版本,用户的 Navigator 可以控制的 MIME 类型,用户已经安装的插件。所有这些 navigator 的属性都是只读的。
属性概览
appCodeName | 指定浏览器的代码名称。 |
appName | 指定浏览器的名称。 |
appVersion | 指定 Navigator 的版本信息。 |
language | 标明正在使用的 Navigator 的翻译语种。 |
mimeTypes | 客户端支持的所有 MIME 类型数组。 |
platform | 标明了 Navigator 编译适合的机器类型。 |
plugins | 客户端已安装的所有插件数组。 |
userAgent | 指定了用户代理头。 |
方法概览
javaEnabled | 测试是否允许 Java。 |
plugins.refresh | 使新安装的插件有效,并可选重新装入已打开的包含插件的文档。 |
preference | 允许一个已标识的脚本获取并设置特定的 Navigator 参数。 |
taintEnabled | 指定是否允许数据污点。 |
属性
appCodeName
指定了浏览器代码名称的字符串。
属性源 | navigator |
只读 | |
实现版本 | Navigator 2.0 |
示例
下面的例子显示了 appCodeName 属性的值:
document.write("navigator.appCodeName 的值是 " + navigator.appCodeName) 对于 Navigator 2.0 和 3.0,此语句将显示下列文字:
navigator.appCodeName 的值是 Mozilla
appName
指定了浏览器名称的字符串。
属性源 | navigator |
只读 | |
实现版本 | Navigator 2.0 |
示例
下面的例子显示了 appName 属性的值:
document.write("navigator.appName 的值是 " + navigator.appName) 对于 Navigator 2.0 和 3.0,此语句将显示下列文字:
navigator.appName 的值是 Netscape
appVersion
指定了 Navigator 版本信息的字符串。
属性源 | navigator |
只读 | |
实现版本 | Navigator 2.0 |
描述
appVersion 属性将以下列格式指定版本信息:
releaseNumber (platform; country)
此格式中包含下列值:
- releaseNumber 是 Navigator 的版本号。例如,“2.0b4
”指定了 Navigator 2.0, beta 4。
- platform 是 Navigator 运行的平台。例如,“Win16”指定了 16 位版本的 Windows,如 Windows 3.1。
- country 对于国际版本来说是“I”,对于美国本土版本来说是“U”。本土版本相对于国际版本来说,有更强的加密特性。
示例
示例 1. 下面的例子将显示 Navigator 的版本信息:
document.write("navigator.appVersion 的值是 " + navigator.appVersion) 对于在 Windows 95 上运行的 Navigator 2.0,将显示下列信息: navigator.appVersion 的值是 2.0 (Win95, I)
对于在 Windows NT 上运行的 Navigator 3.0,将显示下列信息: navigator.appVersion 的值是 3.0 (WinNT, I)
示例 2. 下面的例子将用换行符分隔每一行字符来填充 Textarea 对象。因为换行字符会根据不同的平台而有不同,示例将测试 appVersion 属性决定用户是否正在运行 Windows (appVersion 对于所有版本的 Windows 来说都包含“Win”)。如果用户正在运行 Windows,换行符将设定为 \r\n;否则将设定为 \n,这是针对 Unix 和 Macintosh 来说的。
<SCRIPT> var newline=null function populate(textareaObject){ if (navigator.appVersion.lastIndexOf(‘Win‘) != -1) newline="\r\n" else newline="\n" textareaObject.value="第一行" + newline + "第二行" + newline + "line 3" } </SCRIPT> <FORM NAME="form1"> <BR><TEXTAREA NAME="testLines" ROWS=8 COLS=55></TEXTAREA> <P><INPUT TYPE="button" VALUE="填充 Textarea 对象" onClick="populate(document.form1.testLines)"> </TEXTAREA> </FORM>
language
标明了正在使用的 Navigator 的翻译版本。
属性源 | navigator |
只读 | |
实现版本 | Navigator 4.0 |
描述
language 的值通常是两个字母的代码,如“en”;某些情况下也可能是五个字符的代码以标明语言子类型,如“zh_CN”。
使用该属性可以决定客户使用的 Navigator 的语言版本,你可能想要为不同语言的用户显示不同的翻译文本。
mimeTypes
一个包含有客户端所有支持的 MIME 类型的数组。
属性源 | navigator |
只读 | |
实现版本 | Navigator 3.0 |
mimeTypes 数组包含了客户端支持的每一个 MIME 类型(实际上,这是由帮助应用程序或插件实现的)。例如,如果一个客户端支持三种 MIME 类型,这些 MIME 类型将被反映到 navigator.mimeTypes[0]、navigator.mimeTypes[1],和 navigator.mimeTypes[2] 中。
mimeTypes 数组的每一个元素都是一个 MimeType 对象。
参看
platform
标明了 Navigator 编译的机器类型。
属性源 | navigator |
只读 | |
实现版本 | Navigator 4.0 |
描述
Platform 值可能是 Win32、Win16、Mac68k、MacPPC 和各种 Unix。
由于版本差异、模拟器或其它原因,Navigator 根据不同的机器类型编译的版本会有一定的出入。
如果你使用 SmartUpdate 向用户机器上下载软件,就可以使用此特性保证触发器下载的是对应的 JAR 文件。触发页将在检查 platform 属性前检查 Navigator 的版本。要获得关于使用 SmartUpdate 更多的信息,请参看将 JAR 安装管理器用于 SmartUpdate。
plugins
包含了客户端目前安装的所有插件的数组。
属性源 | navigator |
只读 | |
实现版本 | Navigator 3.0 |
使用本数组可以引用客户端安装的 Plugin 对象。plugins 数组的每个元素都是一个 Plugin 对象。例如,如果在客户端安装了三个插件,这三个插件将被映射为 navigator.plugins[0]、navigator.plugins[1] 和 navigator.plugins[2].
要使用 plugins 数组:
1. navigator.plugins[index] 2. navigator.plugins[index][mimeTypeIndex] index 是一个表明客户端所安装插件顺序的整型数,或者是包含 Plugin 对象名称(可从 name 属性中查到)的字符串。第一种格式将返回存储在 plugins 数组中指定位置的 Plugin 对象。第二种格式将返回该 Plugin 对象中的 MimeType 对象。
要获得客户端已安装的插件数目,可以使用 length 属性:navigator.plugins.length。
plugins.refresh: plugins 数组有其自己的方法,refresh。此方法将使得最新安装的插件可用,更新相关数组,如 plugins 数组,并可选重新装入包含插件的已打开文档。你可以使用下列语句调用该方法:
navigator.plugins.refresh(true) navigator.plugins.refresh(false) 如果你给定 true 的话,refresh 将在使得新安装的插件可用的同时,重新装入所有包含有嵌入对象(EMBED 标签)的文档。如果你给定 false 的话,该方法则只会刷新 plugins 数组,而不会重新载入任何文档。
当用户安装插件后,该插件将不会可用,除非调用了 refresh,或者用户关闭并重新启动了 Navigator。
示例
下面的代码将刷新数组并重新装入包含有嵌入对象的文档:
navigator.plugins.refresh(true) 同时可参看 Plugin 对象的示例。
userAgent
该字符串表明从客户端向服务器发送的 HTTP 协议用户代理头的值。
属性源 | navigator |
只读 | |
实现版本 | Navigator 2.0 |
描述
服务器使用在用户代理头中发送的值来鉴别客户。
示例
下面的例子将显示 Navigator 中的 userAgent 信息:
document.write("navigator.userAgent 的值是 " + navigator.userAgent) 对于 Navigator 2.0,将显示下列内容:
navigator.userAgent 的值是 Mozilla/2.0 (Win16; I)
方法
javaEnabled
测试是否允许 Java。
方法源 | navigator |
静态 | |
实现版本 | Navigator 3.0 |
语法
javaEnabled()
参数
无。
描述
如果允许 Java 的话,javaEnabled 将返回 true;否则将返回 false。用户可以通过用户首选项的参数设置启用或禁用 Java。
示例
下面的代码将在允许 Java 的情况下执行 function1;否则执行 function2。
if (navigator.javaEnabled()) { function1() } else function2()
参看
navigator.appCodeName, navigator.appName, navigator.userAgent
preference
允许标识的脚本获取并设置某些 Navigator 的首选项。
方法源 | navigator |
静态 | |
实现版本 | Navigator 4.0 |
语法
preference(prefName) preference(prefName, setValue)
参数
prefName | 表明了你想要获取或设置的首选项的名称。可以选用下面列出的首选项。 |
setValue | 你想要为首选项指定的值。可以是字符串、数值或布尔值。 |
描述
本方法将返回首选项的值。如果你使用本方法设置值,则将返回新值。
安全性
使用 preference 方法读取首选项需要有 UniversalPreferencesRead 权限。用此方法设置首选项需要有 UniversalPreferencesWrite 权限。
要获得关于 Navigator 4.0 中的安全性的更详细信息,请看“JavaScript 指南”中的第七章“JavaScript 安全性”。
在得到许可的情况下,你可以获取和设置在表 8.2 中列出的首选项。
表 8.2 参数选择
要做下列事... | 设置此参数... | 为... |
---|---|---|
允许或禁止自动装入图像 | general.always_load_images | true 或 false |
允许或禁止 Java | security.enable_java | true 或 false |
允许或禁止 JavaScript | javascript.enabled | true 或 false |
允许或禁止样式表 | browser.enable_style_sheets | true 或 false |
允许或禁止 SmartUpdate | autoupdate.enabled | true 或 false |
接受所有 cookie | network.cookie.cookieBehavior | 0 |
只接受发送回原始服务器的 cookie | network.cookie.cookieBehavior | 1 |
禁止 cookie | network.cookie.cookieBehavior | 2 |
接受 cookie 前警告 | network.cookie.warnAboutCookies | true 或 false |
taintEnabled
指定是否允许数据污点。
方法源 | navigator |
静态 | |
实现版本 | Navigator 3.0; 在 Navigator 4.0中已删除 |
语法
navigator.taintEnabled()
描述
污点将避免其它脚本传递绝密和私有的信息,例如目录结构或用户浏览历史。JavaScript 不能在没有最终用户许可的情况下向任何服务器发送带有污点的值。
可以使用 taintEnabled 决定是否允许数据污点。如果允许数据污点的话,taintEnabled 将返回 true,否则返回 false。用户可以环境变量 NS_ENABLE_TAINT 启用或禁用数据污点。
示例
下面的代码将在允许数据污点的情况下执行 function1;否则执行 function2。
if (navigator.taintEnabled()) { function1() } else function2()