Signatur
Beschreibung
Die Eigenschaft version des HTMLHtmlElement (erreichbar über document.documentElement) ist ein String, der den Inhalt des HTML-Attributs version am Wurzelelement <html> liest und schreibt. In HTML 4.01 sollte man damit die Version der Dokumenttypdefinition (DTD) angeben, etwa "-//W3C//DTD HTML 4.01//EN".
Seit HTML5 ist das Attribut veraltet. Die Version des Dokuments ergibt sich allein aus der <!DOCTYPE>-Deklaration. Deshalb liefert version in modernen Dokumenten fast immer einen leeren String, weil das Attribut nicht gesetzt ist.
Die Eigenschaft spiegelt das Attribut nur wider. Liest oder schreibt man sie, ändert das weder den Parse-Modus (Quirks- oder Standardmodus) noch die Darstellung. Wer echte Angaben zum Dokumenttyp braucht, nimmt document.doctype (ein DocumentType-Objekt mit name, publicId und systemId) oder document.compatMode.
Rückgabewert
version-Attributs am <html>-Element. Ist das Attribut nicht vorhanden, ist es ein leerer String "". Beim Schreiben wird das Attribut gesetzt.Beispiele
Wert in einem modernen HTML5-Dokument lesen
// <!DOCTYPE html><html lang="de"> …
const root = document.documentElement;
console.log(root instanceof HTMLHtmlElement);
console.log(JSON.stringify(root.version));
Attribut setzen und über getAttribute prüfen
const root = document.documentElement;
root.version = '-//W3C//DTD HTML 4.01//EN';
// Die Eigenschaft spiegelt das Attribut wider
console.log(root.getAttribute('version'));
console.log(root.version === root.getAttribute('version'));
Moderner Ersatz: document.doctype und compatMode auswerten
const getDocumentInfo = () => {
const { doctype, compatMode } = document;
return {
doctype: doctype ? doctype.name : null,
publicId: doctype?.publicId || '(keine)',
// Veraltetes Attribut nur als Fallback-Info
legacyVersion: document.documentElement.version || '(nicht gesetzt)',
mode: compatMode === 'CSS1Compat' ? 'Standardmodus' : 'Quirks-Modus'
};
};
console.log(getDocumentInfo());
// Wichtig · Fallstricke
- Veraltet: Das Attribut
versionist in HTML5 nicht mehr zulässig, HTML-Validatoren melden es als Fehler. Verwende es nicht in neuem Code. - Wenn du
versionsetzt, bleibt der Rendering-Modus gleich. Der hängt nur von der<!DOCTYPE>-Deklaration ab, und die lässt sich nach dem Parsen nicht mehr ändern. - Ist das Attribut nicht gesetzt, gibt die Eigenschaft einen leeren String zurück, nicht
null. Das ist wichtig, wenn du auf Vorhandensein prüfst: Nimm dafürhasAttribute('version'). - Kompatibilität: Alle gängigen Browser (Chrome, Firefox, Safari, Edge) unterstützen die Eigenschaft weiterhin, aber nur aus Gründen der Rückwärtskompatibilität. In XHTML-/XML-Dokumenten verhält sie sich genauso, solange das Wurzelelement ein
HTMLHtmlElementist.