一个文档可以有一个或多个与之相关联的“视图”,比如应用 CSS 样式表后的文档的已计算视图;或者客户端相同文档的多个表示(比如 HTML 框架)。也就是说,视图是与原文档相关联的表现形式或某种备用的表现形式。
一个视图可以是静态的,反映其创建时的文档状态;也可以是动态的,反映视图创建好以后文档中发生的变化。本级别的 DOM 规范没有描述这些行为。
本小节定义了 AbstractView
接口。该接口提供了所有视图应该继承的基接口。它定义了一个属性指向 AbstractView 的目标文档。
这里定义的 AbstractView 的唯一语义就是关联一个视图和它的目标文档。
DOM 级别2 中没有定义 AbstractView 的子接口。
然而,在本级别的下面两处定义和使用了 AbstractView:
DocumentView。通常该默认视图依赖于该实现(比如描画该文档的浏览器页面框架)。默认视图可以用来识别视图或关联视图与其目标文档(通过检测 AbstractView 是否相等或通过获取 DocumentView 属性)。UIEvent 通常发生在文档的视图中。(比如,在描画了一个特定文档实例的浏览器页面上点击鼠标)。UIEvent
有一个与之相关联的 AbstractView,后者确定了那个发生事件的特殊(依赖于实现)视图以及和该
UIEvent 相联系的目标文档。本节中定义的接口都不是强制性的。DOM 应用程序可以使用
DOMImplementation 接口中的方法 hasFeature(feature,
version) (参数分别为 "Views" 和 "2.0")来确定该
DOM 实现是否支持本模块。一个实现要想能够完全支持本模块,它也必须同时支持
DOM 级别2 核心 规范 [DOM 级别2 核心] 中定义的 "核心" 特性。另请参阅 DOM 级别2 核心 规范中的一致性信息。
所有视图应该继承的基接口。
// DOM 级别2 中引入:
interface AbstractView {
readonly attribute DocumentView document;
};
document 类型 DocumentView,只读DocumentView
of which this is an AbstractView.DocumentView 接口由支持 DOM 视图的 DOM 实现中的
Document 对象实现。它提供一个属性以读取文档的默认视图。
// Introduced in DOM Level 2:
interface DocumentView {
readonly attribute AbstractView defaultView;
};
defaultView 类型 AbstractView,只读AbstractView,或 null 若没有。