Wie kann ich einem leeren DOM-Dokument ein body-Element hinzufügen?

8

Ich habe diese Zeichenfolge, die den Körper einer Seite darstellt, die ich für einige Elemente analysieren möchte. Ich glaube (widersprechen Sie mir gerne), der beste Weg, dies zu tun, ist ein leeres Dokument zu erstellen, dann fügen Sie den Körper und verwenden Sie Standard-JS-Methoden, um zu bekommen, was ich will Aber ich kann den Text dem Dokument nicht hinzufügen. In Chrome schlägt der folgende Code in Zeile 2 mit NO_MODIFICATION_ALLOWED_ERR: DOM Exception 7 fehl.

%Vor%

Gibt es eine Möglichkeit, das zu erreichen, was ich will?

    
Antoine 04.11.2011, 14:38
quelle

3 Antworten

0

Es ist nicht möglich, das innereHTML des Stammelements des Dokuments zu bearbeiten, aber dies ist für einen untergeordneten Knoten möglich. Also, das funktioniert:

%Vor%     
Antoine 04.11.2011, 15:31
quelle
5

Da wir einige Jahre weiter als die ursprünglich angenommene Antwort sind, möchte ich eine modernere geben.

In Firefox 50.0.2 können Sie dies tun:

%Vor%

Hier wird der Körper erstellt und direkt "document.body" zugewiesen. Ein bisschen Lesen ( Ссылка ) hat mir klar gemacht, dass das Attribut des Dokuments " body "kann entweder" null "sein oder ein Objekt vom Typ" body "oder (nicht empfohlen)" frameset "enthalten.

Folgendes funktioniert nicht , d. h., es wird eine leere Seite erstellt, da die Zuweisung zu "document.body" fehlt:

%Vor%

Anstelle von document.body = body; können Sie dies tun: document.documentElement.appendChild(body); , während document.firstChild.appendChild(body); einen Fehler auslöst ("HierarchyRequestError: Knoten kann nicht am angegebenen Punkt in der Hierarchie eingefügt werden").

Man könnte argumentieren, ob das Hinzufügen eines Absatzes durch die Bewertung von innerHTML der beste Weg ist, aber das ist eine andere Geschichte.

    
JosefScript 07.12.2016 20:37
quelle
1

Ich habe in den letzten Versionen von Chrome festgestellt, dass Antoines Antwort nicht funktioniert - Sie erhalten eine leere Seite. Dies funktioniert jedoch in Chrome:

%Vor%     
B T 11.02.2015 05:30
quelle

Tags und Links