
關(guān)于 DOM 的幾個級別,實際上是由 W3C 標(biāo)準(zhǔn),W3C就是 world wide web consortium 的縮寫,中文翻譯過來就是萬維網(wǎng)聯(lián)盟,是web技術(shù)領(lǐng)域最具有權(quán)威和影響力的國際中立性技術(shù)標(biāo)準(zhǔn)機(jī)構(gòu),具體就不展示了。
其中 DOM 就是標(biāo)準(zhǔn)之一:DOM 分為三個級別:DOM1級、DOM2級、DOM3級。
那 DOM 具體是什么東西呢?DOM 其實是文檔對象模型(document object model)的縮寫,它是一種提供對文檔訪問或修改方法的模型,它的范圍很廣,但對于 web 開發(fā)者來說,往往都認(rèn)為它是指JavaScript在瀏覽器訪問和修改html 文檔的一種技術(shù),但實際上范圍遠(yuǎn)不局限在這里。
DOM 1級(DOM Level 1)于1998年10月成為 W3C 的推薦標(biāo)準(zhǔn),DOM1級由兩個模塊組成:DOM核心(DOM Core)和 DOM HTML,DOM Core 能映射以XML為基礎(chǔ)的文檔結(jié)構(gòu),允許獲取和操作文檔的任意部分,而DOM HTML 通過添加 HTML 專用的對象與函數(shù)對 DOM Core 進(jìn)行了擴(kuò)展。簡單說,DOM1級就是映射文檔結(jié)構(gòu)和提供基本的文檔操作方法。
DOM2級,就是對DOM1級進(jìn)行擴(kuò)展,2級DOM通過對象接口增加對鼠標(biāo)和用戶界面事件、范圍、遍歷和重疊樣式表(CSS)的支持。同時也對DOM1進(jìn)行了擴(kuò)展,從而可支持XML命名空間。簡單來說,DOM2級就是在DOM1的基礎(chǔ)上增加了視圖、事件、樣式、遍歷和范圍的接口,和支持XML命名空間。
DOM3級,在前面DOM基礎(chǔ)上,引入了以統(tǒng)一方式加載和保存文檔的方法,新增了驗證文檔的方法,同時也對DOM核心進(jìn)行了擴(kuò)展,開始支持XML1.0規(guī)范。
除了上面的三個等級之外,還有一個叫DOM0級的東西,實際上標(biāo)準(zhǔn)并沒有這個東西,它指的是IE4和Netscape Navigator 4.0 最初支持的DHTML,DHTML實際上是HTML、CSS和JS的一個集成,代表的是一種已有的技術(shù),不是標(biāo)椎,所以DOM0級其實代表的是歷史節(jié)點中未形成標(biāo)準(zhǔn)的一個初期產(chǎn)物。
舉一個常見的DOM0級事件和DOM2級事件的比較:綁定按鈕的onclick賦值為一個函數(shù)就是DOM0級的,但是onclick多次賦值不同函數(shù),最后也會被后面的函數(shù)覆蓋掉;而DOM2級利用提供的addEventListener方法監(jiān)聽按鈕的click事件,多次寫監(jiān)聽同一個事件,函數(shù)會被依次執(zhí)行的,不會被覆蓋。