簡體   English   中英

需要幫助以了解什么是文檔對象模型?

[英]Need help to understand what Document Object Model is?

我是JavaScript的新手,並且擁有Googled DOM,並發現許多網站指出它是針對XML / HTML文檔的接口/ API。 但是我不明白什么是DOM。 是API的名稱嗎? 瀏覽器需要遵循的規范嗎? 有人可以解釋嗎?

另外,我在編寫document.get...時是否直接使用DOM API document.get...或者是包裝對DOM API的調用的JavaScript?

如果有人能解釋DOM和JavaScript如何一起工作以及它是什么,我將非常感謝您的幫助!

文檔對象模型或DOM是允許您以編程方式訪問和操縱網頁(或文檔)內容的接口。 它提供了頁面中各個元素和內容的結構化,面向對象的表示形式,以及用於檢索和設置這些對象的屬性的方法。 它還提供了添加和刪除此類對象的方法,使您可以創建動態內容。

http://www.brainjar.com/dhtml/intro/

除了其他答案,我還要添加:
引用w3.org/DOM/

文檔對象模型是平台和語言無關的界面,它將允許程序和腳本動態訪問和更新文檔的內容,結構和樣式。 “動態HTML”是一些供應商使用的術語,用於描述HTML,樣式表和允許對文檔進行動畫處理的腳本的組合。 W3C收到了成員公司的幾份意見書,內容涉及將HTML文檔的對象模型公開給腳本的方式。 這些提交沒有提出任何新的HTML標記或樣式表技術。 W3C DOM活動正在努力確保可互操作和腳本語言中立的解決方案達成共識。

本質上我是這樣看的:
在瀏覽器中,您可以使用腳本,這些腳本通常是EcmaScript的方言(IE支持VBScript)。 這些腳本在腳本主機中運行(可以是瀏覽器的ecmascript引擎,也可以是獨立引擎,例如node.js,wscript / csript, jsdbjavascript-exe等)。

由於ecmascript 基於對象 ,因此核心語言從其(父)宿主繼承/訪問對象,屬性和方法(就像您可以添加自己的md5-routine作為與之交互的額外功能/對象/方法一樣)。

因此,DOM本質上是一種標准,在該標准中,與文檔中的元素以及從瀏覽器(用於瀏覽器的嗅探等)進行交互所需的對象/屬性/方法受到了規范,並且以何種層次結構進行了調控。

這樣,每個人都可以使用統一稱為getElementById的方法,該方法在document可用(由window提供,就像wscript提供echo而不是alert瀏覽器的window通常提供使用OK按鈕和一個新對話框打開窗口一樣)您提供的消息)等等。

您甚至可以將其與API進行比較。.僅此API對所有供應商的所有兼容瀏覽器均有效。

注意:我從這個(現在已刪除)重復的 答案中救出了這個答案。

首先,瀏覽器可能/應該遵循的是W3C制定的規范 (與HTML或CSS相同)–在大多數情況下,規范和實際實現會相互發展,而不是“先起草然后實施”,這會導致許多瀏覽器不一致。這就是為什么我喜歡使用jQuery或ProtopyJS之類的Javascript庫來為我處理許多此類不一致的原因。)

但在大多數情況下,DOM指的是它在javascript中的實際用法:代替解析HTML標簽,JavaScript可以訪問瀏覽器的解析節點並直接對其進行操作( document.getElementByIdNode.appendChild等)。

(編輯:在quirksmode上找到了一篇有趣的文章。)

JavaScript只是一種編程語言。

文檔對象模型是一種API(本質上是一組類和函數),使您可以使用JavaScript編程語言,在瀏覽器中或在其他環境(可能完全不同)中訪問和修改HTML文檔的元素樹。語言。

DOM是瀏覽器公開的API。 它與ECMAScript分開,並且是W3C標准中定義明確的規范。

瀏覽器公開的API是DOM的實現。 有人可能會爭論實現是否在C ++級別上以及javascript API是否是代理,但這並不是一個有趣的論點。

通常,DOM和BOM以及各種html5規范形成瀏覽器通過window屬性公開的宿主對象

宿主對象不過是瀏覽器向您展示的內在特性,因此您可以操縱瀏覽器的狀態,頁面的狀態並與外部資源進行通信。

DOM是一種API,可讓javascript處理HTML

DOM通常表示為樹層次結構,可讓您操縱HTML頁面。

DOM的Javascript實現允許您操縱此樹,從而能夠以編程方式添加,刪除或修改HTML DOM,使您可以使html具有交互性(即時添加或刪除樣式,甚至可以使用javascript)。

Mozilla在其網站上提供了有關其DOM API的已發布規范:

請參閱Brainjar的“文檔對象模型簡介”。 它寫得很清楚。 我希望他們會繼續跟進!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM