问题 HTML DOM从哪里开始?窗口?文件? document.defaultView?


作为标题。

是否有一张介绍HTML DOM构造的图片?


11374
2018-04-08 11:55


起源



答案:


DOM(文件 对象模型)从开始 document 节点。它被称为“根节点”。

观察以下树(对应 nodeType在括号中):

[HTMLDocument](9)
    [DocumentType](10)
    [HTMLHTMLElement](1)
        [HTMLHeadElement](1)
            [HTMLTitleElement](1)
                [Text]Title(3)
        [HTMLBodyElement](1)

树¹将由以下标记组成:

<!DOCTYPE HTML><html><head><title>Title</title></head></body></html>

注意明显缺少空白。添加空格会将文本节点添加到文档树中,并且显然会使模拟更加困难。

window object不是DOM的一部分。它是一个实现为“全球对象“完成ECMAScript的实现。它有它的 自己的标准 可从W3C获得。尽管需要全局对象来完成ECMAScript实现,但DOM却不是。这在node.js环境中举例说明。

¹某些环境会忽略doctype节点。我已经将Opera 5-9和Safari 3.1视为表现出这种行为的环境。


18
2018-04-09 01:51



这是正确答案,DOM开始于 document。顺便说一句, window 它的属性,方法和事件有时被称为“BOM”或浏览器对象模型。 - bfavaretto
对。 DOM也与语言无关。它不仅限于JavaScript,也不限于ECMAScript。
@MattMcDonald正如您在PHP中所观察到的那样 DOM文档 图书馆。 - alex
您链接到的Window Object规范草稿已过时,似乎已被放弃。它是从Web Apps 1.0中提取的,它成为了HTML5的一部分,所以HTML5规范中的定义更好: dev.w3.org/html5/spec/browsers.html#the-window-object - Alohci


答案:


DOM(文件 对象模型)从开始 document 节点。它被称为“根节点”。

观察以下树(对应 nodeType在括号中):

[HTMLDocument](9)
    [DocumentType](10)
    [HTMLHTMLElement](1)
        [HTMLHeadElement](1)
            [HTMLTitleElement](1)
                [Text]Title(3)
        [HTMLBodyElement](1)

树¹将由以下标记组成:

<!DOCTYPE HTML><html><head><title>Title</title></head></body></html>

注意明显缺少空白。添加空格会将文本节点添加到文档树中,并且显然会使模拟更加困难。

window object不是DOM的一部分。它是一个实现为“全球对象“完成ECMAScript的实现。它有它的 自己的标准 可从W3C获得。尽管需要全局对象来完成ECMAScript实现,但DOM却不是。这在node.js环境中举例说明。

¹某些环境会忽略doctype节点。我已经将Opera 5-9和Safari 3.1视为表现出这种行为的环境。


18
2018-04-09 01:51



这是正确答案,DOM开始于 document。顺便说一句, window 它的属性,方法和事件有时被称为“BOM”或浏览器对象模型。 - bfavaretto
对。 DOM也与语言无关。它不仅限于JavaScript,也不限于ECMAScript。
@MattMcDonald正如您在PHP中所观察到的那样 DOM文档 图书馆。 - alex
您链接到的Window Object规范草稿已过时,似乎已被放弃。它是从Web Apps 1.0中提取的,它成为了HTML5的一部分,所以HTML5规范中的定义更好: dev.w3.org/html5/spec/browsers.html#the-window-object - Alohci


窗口没有公共标准,但大多数浏览器都支持Window的根目录。 我找到了很多好东西: http://www.w3schools.com (我与该网站没有任何联系)。

一个简单的谷歌搜索“dom html”图像将获取图像。然后...

当所有其他方法都失败时 - 转到来源: http://www.w3.org/TR/DOM-Level-2-HTML/html.html


-6
2018-04-08 12:13



感谢您的回答。 BTW。你可能想看看这个: w3fools.com - weilou
窗户有自己的标准。请参阅我的回答以获取链接。
以防万一有人在将来阅读这个答案认为它是正确的......事实并非如此。 MattMcDonald的回答是 突飞猛进 比这更好。也 决不 听听w3schools。他们不知道他们在说什么,会误导你。 - rlemon
我把Matt McDonald的答案设定为接受的答案。谢谢! - weilou
哎哟 - 我应该花更多时间在我的答案上。 - Leo O'Donnell