HTML5擴展了 HTMLDocument ,增長了新的功能。與HTML5中新增的其餘DOM擴展相似,這些變化一樣基於那些已經獲得不少瀏覽器完美支持的專有擴展。因此,儘管這些擴展被寫入標準的時間相對不長,但不少瀏覽器很早就已經支持這些功能了。瀏覽器
1. readyState 屬性ui
IE4最先爲 document 對象引入了 readyState 屬性。而後,其餘瀏覽器也都陸續添加這個屬性,最終HTML5把這個屬性歸入了標準當中。Document 的 readyState 屬性有兩個可能的值:code
使用 document.readyState 的最恰當方式,就是經過它來實現一個指示文檔已經加載完成的指示器。在這個屬性獲得普遍支持以前,要實現這樣一個指示器,必須藉助onload 事件處理程序設置一個標籤,代表文檔已經加載完畢。
document.readyState屬性的基本用法以下。對象
JS事件
if (document.readyState == 「complete」){ //執行操做 }
支持 readyState 屬性的瀏覽器有IE4+、Firefox 3.6+、Safari、Chrome和Opera 9+。開發
2. 兼容模式文檔
自從IE6開始區分渲染頁面的模式是標準的仍是混雜的,檢測頁面的兼容模式就成爲瀏覽器的必要功能。IE爲此給 document 添加了一個名爲 compatMode 的屬性,這個屬性就是爲了告訴開發人員瀏覽器採用了哪一種渲染模式。就像下面例子中所展現的那樣,
在標準模下, document.compatMode 的值等於 「CSS1Compat」 ,
而在混雜模式下, document.compatMode 的值等於 「BackCompat」 。get
JS擴展
if (document.compatMode == 「CSS1Compat」){ alert(「Standards mode」); } else { alert(「Quirks mode」); }
後來,陸續實現這個屬性的瀏覽器有Firefox、Safari 3.1+、Opera和Chrome。最終,HTML5也把這個屬性歸入標準,對其實現作出了明確規定。渲染
3. head 屬性
做爲對 document.body 引用文檔的 <body> 元素的補充,HTML5新增了 document.head屬性,引用文檔的 <head> 元素。要引用文檔的 <head> 元素,能夠結合使用這個屬性和另外一種後備方法。
JS
var head = document.head || document.getElementsByTagName(「head」)[0];
若是可用,就使用 document.head ,不然仍然使用 getElementsByTagName() 方法。
實現 document.head 屬性的瀏覽器包括Chrome和Safari 5。