当前位置:首页 > VBS文档对象模型
文档对象模型(DOM)
文档对象模型(DOM)属于VBScript客户端扩展部分,在文档对象模型中提供了大量的对象,这些对象应用于浏览器上,这些对象在我们编写脚本时发挥着重要的作用。
当用户在浏览器中打开一个页面时,浏览器就会自动创建文档对象模型中的一些对象,这些对象存放了HTML页面的属性和其他的相关信息,因为这些对象在浏览器上运行,所以我们有时也称之为浏览器对象。浏览器对象的层次图如图3-10所示,这个文档对象模型是Navigator的文档对象模型。
图3-10 文档对象模型(DOM)
在这个层次图中,每个对象都是它的父对象的属性。例如,Window对象是Document对象的父对象,所以在引用Document对象时使用Window.Document。在这里,Document对象也就是Window对象的属性。
对于每一个页面,浏览器都会自动创建Window对象、Document对象、Location对象、Navigator对象、History对象。而基于这个层次结构,还可以创建其他对象。例如,如果在页面中有一个表单对象(名称为MyForm),那么在引用MyForm对象时,就可以使用Window.Document.MyForm。在这里可以看出,Document对象是Window对象的属性,而如果页面中存在form对象,那么,form对象也是Document对象的属性。
在VBScript中如果要引用某个对象的属性,必须通过整个对象属性的完整路径来进行引用,也就是说,必须指明这个对象的属性的所有父对象。
例如,假如在页面上表单对象的名称为MyForm,而在表单中有—个文本框,名称为MyTextBox,而我们希望能够获取这个文本框中的字符串,那么必须从最高一级对象──Window对象开始引用。引用方式如下所示:Window.Document.MyForm.MyTextBox.value。
3.6.2 Windows对象
Window对象在VBScript浏览器对象的层次图中位于最高一层,具有唯一性,只要浏览器窗口打开,即使在浏览器中没有加载任何页面,VBScript中同样也会建立Window对象。所以,它也就具有许多和其他浏览器对象不同的属性和方法。
1.Window对象的属性
Window对象中存放的是浏览器整个窗口的属性,包括各种工具条的设置、浏览器的外观设置以及Document对象、History对象、Location对象等内容,对Window对象的属性逐个进行详细介绍是很难的,下面我们对Window对象的属性分类进行简要的介绍。
(1)Closed、Opener属性
Closed属性可以判断一个窗口是否已经被关闭;通过Opener属性可以通过一个窗口来操纵它的父窗口。当一个窗口打开另外一个窗口后,它们之间的关系并不是如同Frame结构一样紧密,它们只是通过Opener属性,子窗口可以和父窗口发生联系,而通过Open()方法的返回值,父窗口可以和子窗口发生联系,这样两个相关的窗口之间就可以实现互操作。
例如,以下例题先建立一个弹出窗口,通过Opener属性可以获取父窗口的属性信息,下述语句可以显示父窗口的名称:
例3-41 Opener属性使用示例
以下是弹出窗口的代码(应命名为tan.htm):
用于测试文件的自动打开与关闭。
(2)defaultStatus、status属性
defaultStartus属性的值是在浏览器窗口下面的状态栏中缺省显示的信息,status属性的值是状态栏中当前显示的信息。
例如,将浏览器状态栏的当前显示的信息通过对话框反馈给用户:
(3)Document、History、Location属性
Document属性、History属性、Location属性就是浏览器对象中的Document对象、History对象、Location对象,下面分别对这些对象进行介绍。
2.Window对象的方法
Window对象有很多方法,下面我们介绍最常用的几种方法。 (1)Open(页面地址,窗口名称,窗口风格)和Close()方法
Open()方法能够打开一个窗口,并且,在打开窗口的时候,还能够指定窗口的风格,Open()方法返回的是窗口的引用,它有3个参数:页面地址、窗口名称和窗口风格,窗口风格中可以指定浏览器是否具有toolbar(工具栏)、Location(地址栏)、directories(目录按钮)、status(状态栏)、menubar(菜单条)、scrollbars(滚动条),它们可以设置为yes或no,窗口风格也可以指定浏览器窗口的width(宽)和height(高)。
Close()方法可以自动关闭一个窗口,例如刚才我们打开的myWindow对象,可以通过Close()方法关闭:
myWindow.Close()
例如,我们打开一个窗口,页面是hello.htm,窗口高400,宽400,有工具栏、地址栏、目录按钮,而没有状态栏、菜单条和滚动条,则代码如下所示:
Sub Window_OnLoad
StrName=Window.Prompt(\请输入姓名\ Window.Alert \End Sub
3.6.3 Document对象
Document对象代表的是当前的整个页面,所以在Document对象中存储着当前页面的一些信息,包括页面的前景色和背景色,也包括了页面中的表单、锚标、图象等对象,运用Document对象,我们还能够向页面中动态添加文本以及各种标签。
1.Document对象的属性
Document对象的属性非常丰富,下面我们分类进行简单介绍。 (1)alinkColor、vlinkColor、bgColor、fgColor和linkColor属性
这些属性是页面的颜色设置。bgColor是页面的背景颜色,fgColor是页面的前景颜色(也就是文本的颜色),linkColor是超链接的颜色,alinkColor是鼠标单击中的超链接的颜色,vlinkColor是已经访问过的超链接的颜色,这些属性和
标签中定义的各种属性相对应。在这里设置颜色时,颜色应该以&hrrggbb形式表达,其中,&h代表颜色是以16进制表达的,而rr代表着红色的深浅程度,gg代表着绿色的深浅程度,bb代表着蓝色的深浅程度。其他各种颜色都是通过这三种颜色组合而成,颜色深浅程度以16进制整数表示,范围从00到ff,如果要设置颜色为绿色,则颜色应该表达成&h00ff00。
例如,运用bgColor属性,我们可以在页面中定义一个按钮,鼠标单击按钮后将页面的背景颜色设置成为黑色,代码如例3-43所示。