Start · Sprachen · JavaScript · Referenz · HTMLHtmlElement.version

HTMLHtmlElement.version

Eigenschaft

Veraltete Eigenschaft, die das <code>version</code>-Attribut des <code>&lt;html&gt;</code>-Elements widerspiegelt, also Versionsangaben zur DTD des Dokuments.

seit JavaScript Veraltet (deprecated) – nur noch aus Kompatibilitä deprecated seit ja Kategorie: webapi

Signatur

HTMLHtmlElement.version

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

Typ
string
Beschreibung
Der Wert des 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));
true ""

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'));
-//W3C//DTD HTML 4.01//EN true

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());
{ doctype: 'html', publicId: '(keine)', legacyVersion: '(nicht gesetzt)', mode: 'Standardmodus' }

// Wichtig · Fallstricke

  • Veraltet: Das Attribut version ist in HTML5 nicht mehr zulässig, HTML-Validatoren melden es als Fehler. Verwende es nicht in neuem Code.
  • Wenn du version setzt, 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ür hasAttribute('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 HTMLHtmlElement ist.