DOMImplementation: Methode createHTMLDocument()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

Die Methode DOMImplementation.createHTMLDocument() erstellt ein neues HTML-Document.

Syntax

js
createHTMLDocument()
createHTMLDocument(title)

Parameter

title Optional

Ein String, der den Titel des neuen HTML-Dokuments enthält.

Rückgabewert

Ein neues HTML-Document-Objekt.

Beispiele

Dieses Beispiel erstellt ein neues HTML-Dokument und fügt es in ein <iframe> im aktuellen Dokument ein.

Hier ist das HTML für dieses Beispiel:

html
<button id="create-doc">Create new document</button>
<iframe id="theFrame" src="about:blank"></iframe>

Die JavaScript-Implementierung von makeDocument() folgt:

js
function makeDocument() {
  const frame = document.getElementById("theFrame");

  const doc = document.implementation.createHTMLDocument("New Document");
  const p = doc.createElement("p");
  p.textContent = "This is a new paragraph.";

  try {
    doc.body.appendChild(p);
  } catch (e) {
    console.log(e);
  }

  // Copy the new HTML document into the frame

  const destDocument = frame.contentDocument;
  const srcNode = doc.documentElement;
  const newNode = destDocument.importNode(srcNode, true);

  destDocument.replaceChild(newNode, destDocument.documentElement);
}

document.getElementById("create-doc").addEventListener("click", makeDocument);

Der Code übernimmt das Erstellen des neuen HTML-Dokuments und das Einfügen von Inhalten in dieses. createHTMLDocument() erstellt ein neues HTML-Dokument, dessen <title> "New Document" ist. Dann erstellen wir ein neues Absatz-Element mit einfachem Inhalt, und dieser neue Absatz wird in das neue Dokument eingefügt.

destDocument speichert das contentDocument des Frames; dies ist das Dokument, in das wir den neuen Inhalt einfügen werden. Die nächsten zwei Zeilen übernehmen das Importieren der Inhalte unseres neuen Dokuments in den Kontext des neuen Dokuments. Schließlich ersetzt destDocument.replaceChild tatsächlich die Inhalte des Frames mit den Inhalten des neuen Dokuments.

Das zurückgegebene Dokument ist mit folgendem HTML vorstrukturiert:

html
<!doctype html>
<html lang="en-US">
  <head>
    <meta charset="UTF-8" />
    <title>title</title>
  </head>
  <body>
    …
  </body>
</html>

Spezifikationen

Specification
DOM
# ref-for-dom-domimplementation-createhtmldocument①

Browser-Kompatibilität

Siehe auch