dom.pdf
### DOM (文档对象模型)详解 #### 一、概述 文档对象模型(Document Object Model,简称DOM)是一种标准,用于定义如何表示、访问和修改HTML和XML文档中的内容。它是VBScript客户端扩展的重要组成部分,提供了丰富的对象集合,帮助开发者通过脚本语言(如JavaScript)与网页元素交互。 #### 二、DOM的基本概念 当用户使用浏览器打开一个HTML页面时,浏览器会解析HTML文档,并构建出DOM树。DOM树中的每个节点都代表文档中的一个组成部分,如HTML元素、文本等。这些节点可以通过脚本语言进行访问和操作,从而实现动态地改变页面内容、样式或行为等功能。 #### 三、浏览器对象层次结构 在DOM中,对象之间存在着层次结构。例如,`Window`对象是最顶层的对象,所有其他的对象都可以被视为其子对象。具体来说: - **Window**:表示浏览器的窗口。即使没有加载任何HTML页面,`Window`对象也始终存在。 - **Document**:表示当前加载的HTML文档。它是`Window`对象的一个属性。 - **Location**:表示当前文档的URL地址。 - **Navigator**:提供关于浏览器的信息。 - **History**:记录用户的浏览历史。 #### 四、示例分析 假设在一个HTML页面中有一个表单对象名为`MyForm`,其中包含一个文本框对象`MyTextBox`,想要获取该文本框中的值,则可以通过以下方式: ```vb Window.Document.MyForm.MyTextBox.value ``` 这里,`Document`是`Window`的属性,而`MyForm`又是`Document`的属性,最后`MyTextBox`则是`MyForm`的属性。因此,必须按照对象的层次结构从顶层开始逐一访问。 #### 五、Window对象详解 `Window`对象是DOM中最核心的对象之一,位于DOM层次结构的最顶端。无论浏览器是否加载了HTML页面,`Window`对象都始终存在。 ##### 1. Window对象的属性 - **Closed**:此属性用于判断一个窗口是否已被关闭。 - **Opener**:此属性允许子窗口获取并操作其父窗口。当一个窗口打开了另一个窗口时,这两个窗口之间通过`Opener`属性关联起来,使得子窗口可以与父窗口进行通信。 ##### 2. 示例代码分析 下面是一个简单的示例,展示了如何利用`Opener`属性获取父窗口的信息: ```html <script language="VBScript"> <!-- Dim popup popup = Window.Open("tan.htm", "popupnav", "width=225,height=235,resizable=1,scrollbars=auto") Window.name = "测试Opener属性" --> </script> ``` 该脚本首先打开一个新的窗口,并设置其大小、可调整性及滚动条属性。同时,父窗口的名字被设为“测试Opener属性”。在新打开的窗口中,可以通过`Window.Opener.name`获取到父窗口的名字。 ##### 3. defaultStatus/status属性 - **defaultStatus**:表示浏览器状态栏默认显示的信息。 - **status**:表示当前状态栏中显示的信息。 例如,可以通过以下代码在鼠标悬停时改变状态栏的显示信息: ```html <a href="3-44.htm" OnMouseOver="Window.status='Window对象的status属性的用法'">测试</a> ``` 当鼠标悬停在这个链接上时,状态栏将显示“Window对象的status属性的用法”。 #### 六、总结 DOM是现代Web开发的基础之一,它通过一系列标准化的方法、属性和事件,使开发者能够轻松地操作网页内容。通过深入理解DOM的工作原理及其提供的对象和属性,开发者可以更好地利用JavaScript等脚本来增强网页的互动性和功能性。