DOM API是JavaScript语言的一部分,更具体地说,document.getElementById()
、window.scroll()
等方法是JavaScript的一部分吗?
如果没有,那么这些是如何工作的?
DOM是网页的面向对象表示,可以使用JavaScript等脚本语言对其进行修改。因此,像document.getElementById()
、window.scroll()
等方法不是DOM的一部分,但脚本语言使用它们来使用全局对象(如文档和窗口(修改DOM,这些全局对象通常被称为浏览器对象模型(BOM(。因此,大多数浏览器实现这些方法来指定它们如何影响DOM。
document
或window
对象是Javascript的一部分吗?
简单的答案是否。它是javascript的实现。
这是如何工作的?
考虑到它与web的关系,这是假设的流程(术语有点蹩脚。请原谅我(。
该过程从浏览器应用程序开始。
浏览器窗口几乎没有关联的组件:
- 窗口
- 开发工具
- 客户端存储
- 网络通信
但是,浏览器窗口只能理解JS、CSS和HTML。因此,为了在这些模块之间建立一个通信桥梁,浏览器注入了用javascript实现的预嵌入对象。
此类对象包括:
document
:与渲染的DOM树通信window
:更新渲染窗口的属性sessionStorage
、localStorage
等:用于客户端存储XmlHttpRequest
:用于服务器通信
因此,如果你试图在Node中访问这些对象,这是一个独立的JS会话,你会得到引用错误。
参考文献:
- 浏览器的工作原理
加载网页时,浏览器会创建页面的文档对象模型,该模型是HTML文档的面向对象表示,充当JavaScript和文档本身之间的接口。这允许创建动态网页[9],因为在页面中JavaScript可以:
添加、更改和删除任何HTML元素和属性更改任何CSS样式对所有现有事件作出反应创建新事件
HTML DOM可以使用JavaScript(以及其他编程语言(访问。
在DOM中,所有HTML元素都被定义为对象。
编程接口是每个对象的属性和方法。
W3C文档对象模型(DOM(是一个平台和语言无关的允许程序和脚本动态访问和更新文档的内容、结构和样式。换句话说:HTMLDOM是获取、更改、添加或删除HTML元素的标准。
另一方面,Javascript DOM(文档对象模型(是一个允许开发人员操纵网站内容、结构和风格的接口。
因此,document.getElementById()
、window.scroll()
来自DOM API,可以使用JavascriptDOM接口访问。
通过阅读以下文章,您可以对这个概念有一个很好的概述
DOM 简介
HTML DOM API
DOM API不是JavaScript语言的一部分。它们是独立的实体。DOM只是浏览器通过全局对象(window
(向在浏览器环境中执行的脚本公开的一组功能。在其他环境(如节点(中,DOM API不一定可用。你可以在这里阅读更多关于这个主题的信息:
- https://developer.mozilla.org/en-US/docs/Glossary/Global_object
- https://developer.mozilla.org/en-US/docs/Web/API/Window