可以说BOM包含了DOM吗?

JavaScript09

可以说BOM包含了DOM吗?,第1张

javacsript是通过访问BOM(Browser Object Model)对象来访问、控制、修改客户端(浏览器),由于BOM的window包含了document,window对象的属性和方法是直接可以使用而且被感知的,因此可以直接使用window对象的document属性,通过document属性就可以访问、检索、修改XHTML文档内容与结构。因为document对象又是DOM(Document Object Model)模型的根节点。可以说,BOM包含了DOM(对象),浏览器提供出来给予访问的是BOM对象,从BOM对象再访问到DOM对象,从而js可以操作浏览器以及浏览器读取到的文档。

DOM和BOM

参考 DOM与BOM 和 BOM和DOM详解

javascript 有三部分构成:ECMAScript,DOM和BOM。根据宿主(浏览器)的不同,具体的表现形式也不尽相同,ie和其他的浏览器风格迥异。

DOM(文档对象模型)是W3C的标准,所有浏览器公共遵守的标准。

DOM 是HTML和XML的应用程序接口(API),就是把「文档」当做一个「对象」来看待。

DOM 使程序和脚本有能力动态地访问和更新文档的内容、结构以及样式,是平台和语言中立的接口。

BOM(浏览器对象模型)是各个浏览器厂商根据DOM在各自浏览器上的实现,表现为不同浏览器定义有差别,实现方式不同。

BOM 就是把「浏览器」当做一个「对象」来看待,BOM除了可以访问文档中的组件之外,还可以访问浏览器的组件。

BOM 定义了JavaScript可以进行操作的浏览器的各个功能部件的接口,主要处理浏览器窗口和框架,不过通常浏览器特定的JavaScript扩展都被看做BOM的一部分,这些扩展包括:

注意:window 是 BOM 对象,而非 js 对象

Javacsript是通过访问BOM对象来访问、控制、修改客户端(浏览器),由于 BOM的window 包含了document,因此可以直接使用window对象的document属性来访问、检索、修改XHTML文档内容与结构。因为 document对象又是DOM 模型的根节点,也就是DOM的最根本的对象是BOM的window对象的子对象,可以说,BOM包含了DOM,浏览器提供出来给予访问的是BOM对象,从BOM对象再访问到DOM对象,从而js可以操作浏览器以及浏览器读取到的文档。

区别:DOM描述了处理网页内容的方法和接口,BOM描述了与浏览器进行交互的方法和接口。

两个都要学。

BOM是浏览器对象模型,用来获取或设置浏览器的属性、行为,例如:新建窗口、获取屏幕分辨率、浏览器版本号等。

DOM是文档对象模型,用来获取或设置文档中标签的属性,例如获取或者设置input表单的value值。

BOM的内容不多,主要还是DOM。

由于DOM的操作对象是文档(Document),所以dom和浏览器没有直接关系。