Is the doctype part of the DOM, and if so, is there a good cross-browser way to read it? I'm not trying to do anything fancy. I just want to access the doctype information from within some JavaScript code. Read-only access is fine.
            Asked
            
        
        
            Active
            
        
            Viewed 4,781 times
        
    2 Answers
10
            document.doctype seems to be the (read-only) property you're looking for.
        Qantas 94 Heavy
        
- 15,750
 - 31
 - 68
 - 83
 
        Alex Martelli
        
- 854,459
 - 170
 - 1,222
 - 1,395
 
- 
                    4Specifically, the optional `DocumentType` node is a `childNode` of `Document`, just as the root `documentElement` and any `Comment` nodes outside the root are. – bobince Jan 01 '10 at 00:08
 - 
                    Thank you, Alex. bobince, the comment you left is also very informative. – user241761 Jan 01 '10 at 00:20
 - 
                    3Yeah, IE mis-parses the doctype as a comment. You can still find it through the `childNodes` list and read the content of the declaration as the comment's `data`, but you can't tell for sure that it wasn't actually a comment, and IE discards the leading and trailing two characters, assuming they're both going to be `--`. Ah, IE, bless it... – bobince Jan 10 '10 at 00:40
 - 
                    4Is it possible to get `document.doctype` as a string somehow? And I don’t mean this one: `"[object DocumentType]"` – Mathias Bynens Jan 10 '11 at 15:56
 - 
                    +1 for Mathias's question. Is it posibl to get document.doctype as a whole doctype string both in FF, IE, Chrome and Webkit? Or should this be a separate question? – matte May 22 '11 at 15:31
 
2
            
            
        If you're inspecting the DOCTYPE to determine if you're in quirksmode or not, this is known to be cross-browser:
document.compatMode; // returns either "BackCompat" or "CSS1Compat"
So you can do:
var quirksmode = document.compatMode == "BackCompat";
        jpsimons
        
- 27,382
 - 3
 - 35
 - 45
 
- 
                    This isn't working completely either. IE thinks a simple (no DTD or anything) means the page is CSS1Compat. God how I loathe IE. – Alkanshel May 05 '11 at 23:42