Во всех совместимых браузерах (включая Chrome / Safari) document.doctype
также возвращает объект DocumentType
. Следующий код можно использовать для генерации правильной строки DOCTYPE.
var node = document.doctype;
var html = "<!DOCTYPE "
+ node.name
+ (node.publicId ? ' PUBLIC "' + node.publicId + '"' : '')
+ (!node.publicId && node.systemId ? ' SYSTEM' : '')
+ (node.systemId ? ' "' + node.systemId + '"' : '')
+ '>';
Этот метод возвращает правильную строку для допустимых (HTML5) типов документов , например:
Объяснение кода:
node.name # Holds the name of the root element, eg: HTML / html
node.publicId # If this property is present, then it's a public document type.
#>Prefix PUBLIC
!node.publicId && node.systemId
# If there's no publicId, but a systemId, prefix SYSTEM
node.systemId # Append this if present