JavaScript的实现包括以下3个部分:
1)核心(ECMAScript):描述了JS的语法和基本对象。
2)文档对象模型 (DOM):处理网页内容的方法和接口
3)浏览器对象模型(BOM):与浏览器交互的方法和接口
什么是DOM?
DOM是W3C(万维网联盟)标准 [所有浏览器公共遵守的标准]。
DOM定义了访问文档的标准:
“W3C文档对象模型(DOM)是一个平台和语言中立的接口,允许程序和脚本动态访问和更新文档的内容、结构和样式。”
W3C DOM标准分为3个不同的部分:
- 核心DOM - 所有文档类型的标准模型
- XML DOM - XML文档的标准模型
- HTML DOM - HTML文档的标准模型
什么是HTML DOM?
HTML DOM是HTML的标准对象模型和编程接口。它定义了:
- HTML元素作为对象
- 所有HTML元素 的属性
- 访问所有HTML元素的方法
- 所有HTML元素的事件
换句话说:HTML DOM是如何获取、更改、添加或删除HTML元素的标准
DOM来源
文档对象模型(Document Object Model,简称DOM),是W3C组织推荐的处理可扩展标志语言的标准编程接口。根据W3C DOM规范,DOM是一种与浏览器、平台和
语言的接口,使得你可以访问页面其他的标准组件。Document Object Model的历史可以追溯至1990年代后期微软与Netscape的“浏览器大战”,双方为在JavaScript与
JScript一决生死,于是大规模的赋予浏览器强大的功能。微软在网页技术上加入了不少专属事物,计有VBScript、ActiveX、以及微软自家的DHTML格式等,使不少网
页使用非微软平台及浏览器无法正常显示。DOM即是当时蕴酿出来的杰作。
HTML DOM (文档对象模型)
当网页被加载时,浏览器会创建页面的文档对象模型(Document Object Model)。
HTML DOM 模型被构造为对象的树:
HTML DOM 树
通过可编程的对象模型,JavaScript 获得了足够的能力来创建动态的 HTML。
- JavaScript 能够改变页面中的所有 HTML 元素
- JavaScript 能够改变页面中的所有 HTML 属性
- JavaScript 能够改变页面中的所有 CSS 样式
- JavaScript 能够对页面中的所有事件做出反应
浏览器对象模型 (BOM)
浏览器对象模型 (BOM) 使 JavaScript 有能力与浏览器"对话"。
浏览器对象模型(Browser Object Model (BOM))尚无正式标准。
由于现代浏览器已经(几乎)实现了 JavaScript 交互性方面的相同方法和属性,因此常被认为是 BOM 的方法和属性。
BOM 是 各个浏览器厂商根据 DOM 在各自浏览器上的实现 [表现为不同浏览器定义有差别,实现方式不同]。
归DOM管的:
E区(由web开发人员呕心沥血写出来的一个文件夹,里面有index.html,CSS和JS等,部署在服务器上,我们可以通过浏览器的地址栏输入URL然后回车将这个
document加载到本地,浏览,右键查看源代码等。
归BOM管的:
A区(浏览器的标签页,地址栏,搜索栏,书签栏,窗口放大还原关闭按钮,菜单栏等等)
B区(浏览器的右键菜单)
C区(document加载时的状态栏,显示http状态码等)
D区(滚动条scroll bar)
BOM是浏览器对象模型,DOM是文档对象模型,前者是对浏览器本身进行操作,而后者是对浏览器(可看成容器)内的内容进行操作。