Sam*_*eff 25
浏览器对象模型是浏览器提供的所有内容的更大表示,包括当前文档,位置,历史,框架以及浏览器可能向JavaScript公开的任何其他功能.浏览器对象模型不是标准化的,可以根据不同的浏览器进行更改.
文档对象模型是标准化的,并且特定于当前HTML文档.它由浏览器对象模型公开(即,DOM是BOM的子集).
Šim*_*das 14
这是一个非正式的术语,因为没有提到它的W3C或WHATWG标准.
一个简单的定义是BOM包含整个对象结构,可以通过浏览器中的脚本访问,从window
"包含其他所有内容" 的对象开始,因为它是全局对象.
该window
对象包含许多属性(尝试console.dir( window );
).这些属性在许多Web标准中指定.该window
对象的"核心"规范至今仍在HTML标准中指定 - 请参见此处,但我想编辑人员决定将此规范转换为单独的标准只是时间问题.我明确地支持"BOM"或"浏览器环境"标准,以使事情更合乎逻辑.
另一方面,这是一个正式的术语.您可以在各种标准中找到该术语的定义,例如DOM4标准规定:
DOM是一种语言和平台中立的接口,允许程序和脚本动态访问和更新文档的内容和结构.
请注意重点是文档.与BOM基本上是浏览器中所有API的总称不同,DOM只是那些处理文档的API.
一个简单的定义是DOM被实现为document
对象(它是DOM树的根btw).基本上,DOM树(及其中的所有内容)可以被视为DOM的一部分.类似地,DOM树之外的所有东西都不是DOM的一部分.
超出DOM-tree == window
除了document
对象之外的所有属性