第七周web做业:DOM&BOM

DOM 描述了处理网页内容的方法和接口;浏览器

BOM 描述了与浏览器进行交互的方法和接口。cookie

 

  DOM(文档对象模型)是 HTML 和 XML 的应用程序接口(API)。DOM 将把整个页面规划成由节点层级构成的文档。HTML 或 XML 页面的每一个部分都是一个节点的衍生物。DOM 经过建立树来表示文档,从而使开发者对文档的内容和结构具备空前的控制力。用 DOM API 能够轻松地删除、添加和替换节点。框架

自从 IE 4.0 和 Netscape Navigator 4.0 开始支持不一样形态的动态 HTML(DHTML),开发者首次可以在不重载网页的状况下修改它的外观和内容。这是 Web 技术的一大飞跃,不过也带来了巨大的问题。Netscape 和微软各自开发本身的 DHTML,从而结束了 Web 开发者只编写一个 HTML 页面就能够在全部浏览器中访问的时期。业界决定必需要作点什么以保持 Web 的跨平台特性,他们担忧若是听任 Netscape 和微软公司这样作,Web 必将分化为两个独立的部分,每一部分只适用于特定的浏览器。所以,负责指定 Web 通讯标准的团体 W3C(World Wide Web Consortium)就开始制定 DOM。ide

DOM Level 1 是 W3C 于 1998 年 10 月提出的。它由两个模块组成,即 DOM Core 和 DOM HTML。前者提供了基于 XML 的文档的结构图,以便访问和操做文档的任意部分;后者添加了一些 HTML 专用的对象和方法,从而扩展了 DOM Core。学习

注意,DOM 不是 JavaScript 专有的,事实上许多其余语言都实现了它。不过,Web 浏览器中的 DOM 已经用 ECMAScript 实现了,如今是 JavaScript 语言的一个很大组成部分。对象

DOM Level 1 只是一个目标,即规划文档的结构,DOM Level 2 的目标就普遍多了。对原始 DOM 的扩展添加了对鼠标和用户界面事件(DHTML 对此有丰富的支持)、范围、遍历(重复执行 DOM 文档的方法)的支持,并经过对象接口添加了对 CSS(层叠样式表)的支持。由 Level 1 引入的原始 DOM Core 也加入了对 XML 命名空间的支持。blog

DOM Level 2 引入了几种 DOM 新模块,用于处理新的接口类型:接口

  • DOM 视图 - 描述跟踪文档的各类视图(即 CSS 样式化以前和 CSS 样式化以后的文档)
  • DOM 事件 - 描述事件的接口
  • DOM 样式 - 描述处理基于 CSS 样式的接口
  • DOM 遍历和范围 - 描述遍历和操做文档树的接口

DOM Level 3 引入了以统一的方式载入和保持文档的方法(包含在新模块 DOM Load and Save)以及验证文档(DOM Validation)的方法,从而进一步扩展了 DOM。在 Level 3 中,DOM Core 被扩展为支持全部的 XML 1.0 特性,包括 XML Infoset、XPath 和 XML Base。事件

在学习 DOM 时,可能会遇到有人引用 DOM Level 0。注意,根本没有 DOM Level 0 这个标准,它只是 DOM 的一个历史参考点(DOM Level 0 指的是 IE 4.0 和 Netscape Navigator 4.0 中支持的原始 DHTML)。ip

IE 3.0 和 Netscape Navigator 3.0 提供了一种特性 - BOM(浏览器对象模型),能够对浏览器窗口进行访问和操做。使用 BOM,开发者能够移动窗口、改变状态栏中的文本以及执行其余与页面内容不直接相关的动做。使 BOM 独树一帜且又经常使人怀疑的地方在于,它只是 JavaScript 的一个部分,没有任何相关的标准。

 

  BOM 主要处理浏览器窗口和框架,不过一般浏览器特定的 JavaScript 扩展都被看作 BOM 的一部分。这些扩展包括:

  • 弹出新的浏览器窗口
  • 移动、关闭浏览器窗口以及调整窗口大小
  • 提供 Web 浏览器详细信息的定位对象
  • 提供用户屏幕分辨率详细信息的屏幕对象
  • 对 cookie 的支持
  • IE 扩展了 BOM,加入了 ActiveXObject 类,能够经过 JavaScript 实例化 ActiveX 对象

因为没有相关的 BOM 标准,每种浏览器都有本身的 BOM 实现。有一些事实上的标准,如具备一个窗口对象和一个导航对象,不过每种浏览器能够为这些对象或其余对象定义本身的属性和方法。

相关文章
相关标签/搜索