【EASYDOM系列教程】之DOM 简介

DOM 是什么

DOM 被设想用于剖析 HTML 页面文档,轻易 JavaScript 言语经由过程 DOM 接见和操纵 HTML 页面中的内容。

DOM 是由 W3C 构造定义规范规范,而且由各大浏览器厂商支撑。严厉意义上来说,DOM 并不是属于 JavaScript 言语。

在其他开辟言语中,也支撑 DOM 的规范规范,比方 PHP 言语。

我们之所以能够在 JavaScript 言语中运用 DOM,是因为各大浏览器将 DOM 的规范规范内容封装成了 JavaScript 言语所支撑的情势。

关于 DOM 中的对象,我们只需挪用的权限,没有修正的权限,也说清楚明了这个题目。

DOM 的详细寄义是什么

DOM 现实上是个缩写,全称是 Document Object Model,被译为 文档对象模子

《【EASYDOM系列教程】之DOM 简介》

个中 D 示意 Document,就是 DOM 将 HTML 页面剖析为一个 文档。同时供应了 document 对象。

其次 O 示意 Object,就是 DOM 将 HTML 页面中每一个元素剖析为一个 对象。比方 <body> 元素在 DOM 中对应就是 HTMLBodyElement 对象。

末了 M 示意 Model,就是 DOM 中示意各个对象之间的关联。

模子(Model)主如果指 DOM 树构造。

DOM 是怎样剖析 HTML 页面的呢

浏览器加载并运转 HTML 页面后,会建立 DOM 构造。因为 DOM 中的内容被封装成了 JavaScript 言语中的对象,所以我们能够运用 JavaScript 言语经由过程 DOM 构造来接见和操纵 HTML 页面中的内容。

换句话讲,DOM 能够理解为是 HTML 页面与 JavaScript 言语之间的一个桥梁。

《【EASYDOM系列教程】之DOM 简介》

DOM 的定义

因为 DOM 的规范规范是由 W3C 构造草拟并定义的,所以 W3C 对 DOM 的定义是现在最威望的诠释。

下面这段英文形貌,就是 W3C 对 DOM 的定义原文:

The Document Object Model is a platform- and language-neutral interface that will allow programs and scripts to dynamically access and update the content, structure and style of documents. The document can be further processed and the results of that processing can be incorporated back into the presented page.

下面这段是本人的翻译(仅供参考):

DOM 是一个自力于任何言语和平台的接口,允许任何言语或剧本动态地接见和更新 HTML 文档的内容、构造和款式。该 HTML 页面能够进一步处置惩罚,而且该处置惩罚的效果能够被合并到所显现的 HTML 页面中。

DOM 规范是自力的

经由过程 W3C 的定义,我们能够晓得 DOM 是不属于任何开辟言语的。固然,DOM 也不会属于 JavaScript 言语。

任何一个开辟言语,只需支撑了 DOM 的规范规范,都能够经由过程 DOM 接见和操纵 HTML 页面。

换句话讲,DOM 在差别开辟言语中,有着差别的运用情势。但最中心的规范规范都是一样的,只是详细运用的开辟言语的语法差别罢了。

比方下面这段代码,就是 JavaScript 中的 DOM 内容:

var btn = document.getElementById('btn');
var className = btn.className;
className += ' animate';
btn.className = className;

DOM 的作用

经由过程 W3C 的定义,我们还能够晓得 DOM 主如果用来剖析 HTML 页面的。也就是只需支撑 DOM 的规范规范的开辟言语,都能够经由过程 DOM 接见和更新 HTML 页面的内容、构造和款式。

初期的 DOM 除了能够接见和更新 HTML 页面外,还能够接见和更新 XML 文档。但现在 XML 文档的运用场景越来越少,再加上 Web 前端开辟需求越来越多。致使 DOM 重要用来接见和更新 HTML 页面了。

浏览器的支撑

现在险些一切的浏览器都支撑 DOM 的内容。然则不是支撑的是 W3C 对 DOM 的规范规范呢?

浏览器和 W3C 谁更早

浏览器对 DOM 的支撑远早于 W3C 定义 DOM 的规范规范。也就是说,在 W3C 定义 DOM 的规范规范之前,各大浏览器就支撑了 DOM。

最早,是 Navigator 浏览器支撑 DOM。但只是供应了 Document 对象的一些属性和要领。

后期,IE 浏览器也加入了对 DOM 的支撑。但 IE 浏览器与 Navigator 浏览器所支撑的 DOM 是有区分的。

这也是 DOM 在差别浏览器中的兼容题目。

而 W3C 构造定义 DOM 的规范规范,重要也是为了处理 DOM 在差别浏览器的差别题目。

虽然,自从 W3C 定义了 DOM 的规范规范后,浏览器的兼容题目好了许多。但,各大浏览器都或多或少地扩大了 W3C 定义的 DOM 规范。

在现实开辟中,只管运用 W3C 的 DOM 规范规范,以防止更多的浏览器兼容题目。

本教程免费开源,任何人都能够免费进修、分享,以至能够举行修正。但须要说明作者及泉源,而且不能用于贸易。

本教程采纳学问同享签名-非贸易性运用-制止归纳 4.0 国际允许协定举行允许。

《【EASYDOM系列教程】之DOM 简介》

    原文作者:二月红
    原文地址: https://segmentfault.com/a/1190000010096549
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞