寫(xiě)作本文的目的是為了能讓自己對(duì)基礎(chǔ)的概念更加熟悉,盡管近期都在關(guān)注Flex領(lǐng)域,不過(guò)得承認(rèn),HTML和JavaScript方面的能力很重要,并不是所有的開(kāi)發(fā)者都認(rèn)同我的說(shuō)辭:“復(fù)雜的業(yè)務(wù)我傾向用Flex實(shí)現(xiàn)。”——rosen jiang
什么是DOM?
從我參加工作開(kāi)始嘴上就老是掛著DOM,起先認(rèn)為DOM只是針對(duì)XML領(lǐng)域,后來(lái)才知道HTML也是一種DOM結(jié)構(gòu)。W3C多DOM的解釋是:文檔對(duì)象模型(DOM)是一種平臺(tái)、語(yǔ)言無(wú)關(guān)的接口,允許程序和腳本動(dòng)態(tài)訪問(wèn)和更新其內(nèi)容、結(jié)構(gòu)和樣式。處理后的文檔可以再次處理,并且處理的結(jié)果可以重新呈現(xiàn)在頁(yè)面上。
什么是文檔(Ducument)?
文檔就是一段合法的XML串或一段HTML,在概念上文檔應(yīng)該有根以便能訪問(wèn)到里面的數(shù)據(jù)。
DOM的級(jí)別
DOM Level 1,DOM Level 1第一版又分成DOM Level 1 Core和DOM Level 1 HTML。
DOM Level 1 Core定義了一組最基本的訪問(wèn)和操作文檔的對(duì)象和接口,是一種滿足所有軟件開(kāi)發(fā)者和web腳本開(kāi)發(fā)者訪問(wèn)和操作HTML、XML的功能性規(guī)范。
DOM Level 1 HTML繼承了DOM Level 1 Core,主要描述HTML文檔方面的對(duì)象和方法。一般來(lái)說(shuō),DOM Level 1 HTML要能實(shí)現(xiàn)維護(hù)結(jié)構(gòu)化的文檔、元素和屬性。
DOM Level 2,DOM Level 2又分成DOM Level 2 Core、DOM Level 2 Views、DOM Level 2 Events、DOM Level 2 Style、DOM Level 2 Traversal and Range Specification、DOM Level 2 HTML。在這里我只關(guān)注Core和HTML。
DOM Level 2 Core和Level 1的定義一樣,并基于Level 1構(gòu)建。
DOM Level 2 HTML基于DOM Level 2 Core構(gòu)建,且不與DOM Level 1 HTML兼容,DOM Level 2 HTML也是目前HTML 4.01和XHTML 1.0所采用的級(jí)別。
DOM Level 3,在這里就不多描述了,目前還沒(méi)有DOM Level 3 HTML規(guī)范,我看DOM Level 3 Core的描述還是針對(duì)HTML 4.01的,難道是在等傳說(shuō)中的HTML 5?對(duì)于HTML 5的相互爭(zhēng)論是可以的,奉勸各大瀏覽器廠商不要把頭打破了。
HTML DOM對(duì)象包括所有的標(biāo)簽,例如<a>就是一個(gè)DOM對(duì)象,HTML中的<a>標(biāo)簽(元素)實(shí)際上是實(shí)現(xiàn)了DOM Level 2 HTML的HTMLAnchorElement接口,再比如<div>標(biāo)簽(分組元素)實(shí)現(xiàn)了HTMLDivElement接口。既然DOM Level 2 HTML和HTML 4.01關(guān)系緊密,那么可以存在:document.createElement(“div”)來(lái)創(chuàng)建DIV對(duì)象。可參考HTML 4.01規(guī)范來(lái)找尋其支持的元素。對(duì)于span這樣的分組元素在DOM Level 2 HTML中是實(shí)現(xiàn)了HTMLElement接口,與span一樣實(shí)現(xiàn)HTMLElement接口的元素是:
這里面最特殊的DOM對(duì)象是document,它實(shí)現(xiàn)了HTMLDocument接口且沒(méi)有對(duì)應(yīng)的HTML標(biāo)簽,HTMLDocument是整個(gè)HTML層次的根并能處理HTML的所有內(nèi)容。
除了內(nèi)置與HTML對(duì)應(yīng)的對(duì)象外,HTML DOM(瀏覽器)中還內(nèi)置了JavaScript對(duì)象,他們是:Window、Navigator、Screen、History、Location,可閱讀HTML DOM 參考手冊(cè),里面解釋得很清楚。需要說(shuō)明的是:Window 對(duì)象表示一個(gè)瀏覽器窗口或一個(gè)框架。在客戶端 JavaScript 中,Window 對(duì)象是全局對(duì)象,所有的表達(dá)式都在當(dāng)前的環(huán)境中計(jì)算。也就是說(shuō),要引用當(dāng)前窗口根本不需要特殊的語(yǔ)法,可以把那個(gè)窗口的屬性作為全局變量來(lái)使用。例如,可以只寫(xiě) document,而不必寫(xiě) window.document,還有用得最多的alert()方法,也不用寫(xiě)Window.alert()。
總結(jié)完畢。
請(qǐng)注意!引用、轉(zhuǎn)貼本文應(yīng)注明原作者:Rosen Jiang 以及出處: http://www.tkk7.com/rosen
Powered by: BlogJava Copyright © Rosen