1.IE中的所有DOM對象都是以COM對象的形式實現(xiàn)的仲墨,意味著IE中的DOM對象與原生JavaScript對象的行為或活動特征并不一致盒件。
2.Node接口在JavaScript中是作為Node類型實現(xiàn)的桶蛔。除了IE外蛋辈,在其他的瀏覽器中都可以訪問到這個類型桶错。
3. NodeList是一種類數(shù)組對象航唆,用于保存一組有序的節(jié)點,并不是Array的實例院刁。
4.所有節(jié)點都有的最后一個屬性是ownerDucement糯钙,該屬性指向表示整個文檔的文檔節(jié)點
5. IE8及更早版本與其他瀏覽器處理空白字符的方式不一樣。IE9之前的版本不會為空白符創(chuàng)建節(jié)點。
6.IE在cloneNode()方法時會復(fù)制事件處理程序任岸,所有在復(fù)制前最好先移除事件處理程序再榄。
7.Document類型可以表示HTML頁面或者其他基于XML的文檔。最常見的應(yīng)用時作為HTMLDocument實例的document對象
8.①取得對<html>的引用
var html = document . documentElement;
②取得對<body>的引用
var body = document . body ;
③取得對<!DOCTYPE>的引用
var doctype = document . doctype ;
9.瀏覽器對document . doctype的支持差別:
①IE8及之前的版本:把文檔聲明類型錯誤地解釋為一個注釋并把它當(dāng)作Comment節(jié)點享潜,而document . doctype的值始終為null困鸥;
②IE9+及Firefox:如果存在文檔聲明類型,則將其作為文檔的第一個子節(jié)點剑按;document . doctype是一個DocumentType節(jié)點信峻,也可以通過document . firstChild或document . childNodes[0]訪問缀匕;
③Safari王滤、Chrome和Opera:如果存在文檔聲明類型泉唁,則將其解析,但不作為文檔的子節(jié)點吴趴;document . doctype是一個DocumentType節(jié)點漆诽,但該節(jié)點不會出現(xiàn)在document . childNodes中
10.瀏覽器處理位于<html>外部的注釋方面的差異:
<!-- 第一條注釋 -->
<html>
? ? ? ? <body></body>
</html>
<!-- 第二天注釋 -->
①IE8及之前的版本、Safari 3.1及更高版本锣枝、Opera和Chrome:只為第一條注釋創(chuàng)建節(jié)點厢拭,不為第二條注釋創(chuàng)建節(jié)點。結(jié)果撇叁,第一條注釋稱為document . childNodes中的第一個子節(jié)點供鸠;
②IE9+:將第一條注釋創(chuàng)建為document . childNodes中的第一個注釋節(jié)點,也會將第二天注釋創(chuàng)建為document . childNodes中的注釋子節(jié)點陨闹;
③Safari 3.1之前的版本及Firefox:完全忽略這兩條注釋
11.由于跨域安全限制楞捂,來自不同子域的頁面無法通過JavaScript通信。通過將document.domain設(shè)置為相同的值趋厉,這些頁面就可以互相訪問對方包含的JavaScript對象了寨闹。
12.瀏覽器對domain屬性的限制:
①不能將domain屬性設(shè)置為URL中不包含的域。
②若域名一開始是“松散的”君账,那么不能將它再設(shè)置為“緊繃的”繁堡。
// 假設(shè)頁面來自于p2p . wrox . com域
document . domain = " wrox . com "; ? ? ? ? ?//松散的(成功)
document . domain = " p2p . wrox . com "; //緊繃的(失敗)
13.①IE8及較低版本不區(qū)分ID的大小寫乡数;
②若頁面中多個元素的ID值相同椭蹄,getElementById()只返回文檔中第一次出現(xiàn)的元素;
③IE7及較低版本中:name特性與給定ID匹配的表單元素也會被該方法返回净赴。
14.屬性的值與通過getAttribute()返回的值不同的兩類特性:
①style:通過屬性訪問返回一個對象绳矩;通過getAttribute()訪問返回CSS文本。
②onclick:通過屬性訪問返回一個JavaScript函數(shù)(若未指定玖翅,則返回null)翼馆;
? ? ? ? ? ? ? ? ? 通過getAttribute()訪問返回相應(yīng)代碼的字符串割以。
開發(fā)人員經(jīng)常只使用對象的屬性,只有在取得自定義特性值的情況下写妥,才會使用getAttribute()方法
15.如果需要通過childNodes屬性遍歷子節(jié)點拳球,那么在執(zhí)行某項操作以前审姓,通常要先檢查nodeType屬性珍特。
16.應(yīng)該盡量減少訪問NodeList的次數(shù),因為每次訪問NodeList魔吐,都會運行一次基于文檔的查詢扎筒。