Wie bekomme ich das <html> -Tag HTML mit JavaScript / jQuery?


161

Mit $('html').html()Ich kann die HTML im bekommen <html>Tag ( <head>, <body>usw.). Aber wie kann ich den tatsächlichen HTML-Code des <html>Tags (mit Attributen) abrufen?

Ist es alternativ möglich, den gesamten HTML-Code der Seite (einschließlich Doctype <html>usw.) mit jQuery (oder einfachem altem JavaScript) abzurufen ?

Antworten:


305

Der einfachste Weg, das htmlElement nativ zu erhalten, ist:

document.documentElement

Hier ist die Referenz: https://developer.mozilla.org/en-US/docs/Web/API/Document.documentElement .

UPDATE: Um das htmlElement dann als Zeichenfolge zu erfassen, gehen Sie wie folgt vor:

document.documentElement.outerHTML

1
Weitere Informationen zur documentElementBrowserkompatibilität finden Sie auch in dieser Frage : stackoverflow.com/q/11391827/177710 .
— Oliver

Wie oft wird auf das HTML-Element verwiesen? Ich denke nicht, dass Leistung im Allgemeinen ein Problem sein sollte. Wie auch immer, dies ist eigentlich die bessere Antwort, aber sie kam WEG nach der Auszeichnung.
— Posit Labs

42

So erhalten Sie das HTML-DOM-Element ausschließlich mit JS:

var htmlElement = document.getElementsByTagName("html")[0];

oder

var htmlElement = document.querySelector("html");

Und wenn Sie jQuery verwenden möchten, um Attribute daraus zu erhalten ...

$(htmlElement).attr(INSERT-ATTRIBUTE-NAME);

Ihre Antwort wäre erheblich besser, wenn Sie erklären könnten, warum dies die Frage beantwortet. {}Markieren Sie außerdem den Code und klicken Sie auf die Schaltfläche oder drücken Sie Strg + k, um ihn als Code zu markieren.
— Ben

18

Neben einigen anderen Antworten können Sie auch auf das HTML-Element zugreifen über:

var htmlEl = document.body.parentNode;

Dann könnten Sie den inneren HTML-Inhalt erhalten:

var inner = htmlEl.innerHTML;

Dies scheint auf diese Weise geringfügig schneller zu sein . Wenn Sie nur das HTML-Element erhalten, document.body.parentNodescheint es jedoch ziemlich viel schneller zu sein .

Nachdem Sie das HTML-Element haben, können Sie mit den Methoden getAttributeund mit den Attributen setAttributeherumspielen.

Für den DOCTYPE können Sie verwenden document.doctype, worauf in dieser Frage näher eingegangen wurde .


4
Nur als Hinweis: Dies schlägt fehl, wenn der Text im Dokument noch nicht verfügbar ist.
— DataDink

3
In diesem Fall document.head.parentNodefunktioniert es immer noch, wenn ein Kopfelement vorhanden ist.
— Mahemoff

15

In jQuery:

var html_string = $('html').outerHTML()

In einfachem Javascript:

var html_string = document.documentElement.outerHTML

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.