2012-10-21 19 views
0

我不知道是否有辦法將doctype轉儲到字符串。如何轉儲DOCTYPE元素?

例如,我有一個嚴重依賴BackboneJS的Web應用程序。初始頁面源代碼很簡單(只需要腳本),但是在加載Backbone之後會生成整個內容。我正在尋找一種方法來獲取特定狀態的DOM源,以便將其發送給W3C驗證器。我不想從Firebug的檢查員複製粘貼內容,因爲我想自動化流程。

我已經發現我可以轉儲HTML元素document.getElementsByTagName('html')[0].outerHTML。這不是標準,但適用於許多瀏覽器(Chrome,Opera或其他)。這是好的,因爲我爲開發人員創建了一個工具,而不是頁面最終用戶用戶的解決方案。

但是,這樣的轉儲沒有關於文檔類型的信息。需要doctype來指示HTML驗證器。請問你能幫幫我嗎?在此先感謝您提供有關此主題的任何幫助。

回答

2

document.doctype對象具有的屬性name(這是html爲HTML文檔),publicId爲公共標識符,以及用於systemId系統標識符。您可以這樣構造文本文檔類型聲明:

var doctype = '<' + '!DOCTYPE ' + document.doctype.name; 
if(document.doctype.publicId) doctype += 
    ' PUBLIC "' + document.doctype.publicId + '"'; 
if(document.doctype.systemId) doctype += 
' "' + document.doctype.systemId + '"'; 
doctype += '>\n'; 
1
document.doctype 

希望有所幫助。

+3

如果您需要編寫「希望有所幫助」。爲了張貼你的答案,也許你最好寫一個正確的解釋。 – BoltClock