浏览器对象详解 - 德化论坛

关键信息

作者
xiaoqiao
发布时间
2002-10-12

浏览器对象详解JavaScript工作室在JavaScript编程中,除了可以使用本身提供的固有对象外,还可以使用浏览器对象。浏览器根据目前的配置和当前载入的网页,向 JavaScript提供一些对象。JavaScript程序可以访问这些对象,从而得到当前网页以及浏览器本身的信息。应该指出的是,目前...

浏览器对象详解 - 德化论坛

浏览器对象详解

JavaScript工作室

在JavaScript编程中,除了可以使用本身提供的固有对象外,还可以使用浏览器对象。浏览器根据目前的配置和当前载入的网页,向 JavaScript提供一些对象。JavaScript程序可以访问这些对象,从而得到当前网页以及浏览器本身的信息。应该指出的是,目前流行的两种浏览器所提供的浏览器对象并不完全一样,而有一些微小的差别,读者在编程时应该注意。

本讲介绍如下内客:

什么是浏览器对象

Netscape Navigator提供的浏览器对象

Internet Explorer提供的浏览器对象

使用浏览器对象提供的信息来完成一定功能的网页设计

一 使用浏览器对象

到此为止,JavaScript的大部分基本语法几乎都已经学了。总结起来,前面诸讲主要讲述JavaScript语法和内置对象,也就是说,讨论JavaScript语言本身的结构。由于JavaScript语言是在网页中使用的,而网页又必须通过浏览器来实现浏览,所以 JavaScript语言、网页以及浏览器三者就构成了密不可分的关系。如同浏览器的设计不能不考虑支持JavaScript一样,在JavaScript语言的实现中也必须考虑到对浏览器的操作和处理。这就是本讲所要讨论的内容:JavaScript中的浏览器对象。

在讨论浏览器对象之前,必须理解什么是浏览器对象之间的从属关系。

如果对面向对象的程序设计语言比较熟悉,就一定会知道那些语言中的对象继承关系。对象继承的机制总是要构造一个最初的对象,而其余的对象则用这个对象通过继承的方式得到。初始的对象叫做父对象,而从它继承得到的各种对象就叫做子对象。子对象继承了父对象的各种属性和方法,并且可以增加一些自己独有的函数和方法,从而形成一个新的数据处理模式。

不幸的是,尽管JavaScript是基于对象的脚本设计语言,但是JavaScript并没有真正实现对象的继承关系。在JavaScript的对象之间实际上存在的是一种从属的关系。从属关系涉及到的两个对象在属性和方法上不存在共同点。例如,在一个典型的浏览器中,每一个下载的网页都是处在一个窗口之中的,而一个网页也同样包容了一些表单、HTML语句、Java小应用程序以及各种插件,甚至这些元素内部还会包含一些别的元素,这就形成一个分层的关系。只能认为这些表单、Java 小应用程序是从属于网页的,而网页又是从属于一个特定的窗口的。窗口和网页之间,网页和表单之间没有任何的相似关系。

在从属关系中,浏览器对象Window反映的是一个完整的浏览器窗口,是其他大部分对象的共同祖先。Window对象的子对象包括location对象、history对象和document对象等。在documnt对象之下还有再下一级的对象和对象数组,包括forms、links以及anchors等。

在JavaScript编程中常常从另外一个角度来讨论浏览器对象之间的从属关系。在程序中认为被包容的对象是上一级对象的一个属性,这样就可以使用类似对象中属性的引用方法来访问。例如,一个叫做MyForm的表单被包含在浏览器对象document中,所以,这种关系可以用以下的语法来表示:

documem.MyForm

也可以换一个角度来分析一下从属表。月球绕着地球转动,组成地一月系统;地球和其他八颗行星绕着太阳公转,组成太阳系;而太阳系又是银河系中的一个很小的组成部分,其他恒星同太阳系处于平行的地位,共同构成银河系,这种实际的从属关系正好和这里的从属表相类似。如果用类似 JavaScript的表示方法,这种关系可以表达为:

银河系.太阳系.地球.月球;

一个完整的浏览器对象从属结构可以参见下面的图1:

JavaScript可以使用的对象主要可以分成:

JavaScript的内置对象

浏览器提供的对象

用户自己定义的对象

本指南的第 5讲介绍了 JavaScript的对象模型以及自定义对象,第6讲着重介绍了JavaScript中的内置对象,这些对象都有一定的属性和方法,完成特定的功能。那么,浏览器对象到底完成怎样的功能呢?

在使用Netscape Navigator,或者Internet EXplorer浏览器载入一个网页时,浏览器会根据网页的内容产生一些与相应页面相对应的对象提供给JavaScript使用,这就是浏览器对象的一部分。另外,根据浏览器本身的配置和属性,还有一些其他的对象可以提供给JavaScript程序使用。浏览器对象就是网页和浏览器本身各种实体元素在JavaScript程序中的体现。这样的浏览器对象主要包括:

navigator:管理着当前使用的浏览器的版本号,运行的平台以及浏览器使用的语言等信息。

window:处于整个从属表的最顶级位置。每一个这样的对象代表一个浏览器窗口。

frame:在拥有帧的网页中,提供帧的各种管理方法。

document:含有当前网页的各种特性,例如标题、背景以及使用的语言等。

location:含有当前网页的URL地址。

history:含有以前访问过的网页的URL地址。

forms:是从属于浏览器对象document的一个数组,为处理表单以及其中的界面对象提供属性和方法,每一个表单是这个数组中的一个单独元素。

anchors:是从属于浏览器对象document的一个数组,为处理锚提供属性和方法,每一个锚是这个数组中的一个单独元素。

links:是从属于浏览器对象document的一个数组,为处理超级链接提供属性和方法,每一个链接是这个数组中的一个单独元素。

除了 forms、 anchors以及 links数组以外, 还有 layers、 images、 areas、 applets和 plugins等数组,这些数组都是根据网页不同内容而自动产生的。这些数组都是浏览器对象document的一个属性,数组的个数同HTML网页中实际元素的个数相同。

浏览器对象详解 - 德化论坛

憨鼠网(原德化网) · Hanshu · 福建省泉州市德化县