Come ottengo il codice sorgente HTML dalla pagina?

C’è un modo per accedere al codice sorgente HTML della pagina usando javascript?

So che posso usare document.body.innerHTML ma contiene solo il codice all’interno del corpo. Voglio ottenere tutto il codice sorgente della pagina, compresi i tag head e body con il loro contenuto, e, se ansible, anche il tag html e il doctype. È ansible?

Uso

 document.documentElement.outerHTML 

o

 document.documentElement.innerHTML 

Questo può essere fatto in un one-liner usando XMLSerializer .

 var generatedSource = new XMLSerializer().serializeToString(document); 

Che dà String

  html - javascript page source code - Stack Overflow ... 

Un modo per farlo sarebbe quello di ri-richiedere la pagina usando XMLHttpRequest , quindi si otterrà l’intera pagina dal server web.

Purché

  • è richiesto il vero codice sorgente HTML (non la serializzazione DOM corrente)
  • e che la pagina è stata caricata usando il metodo GET,

l’origine della pagina può essere scaricata di nuovo:

 fetch(document.location.href) .then(response => response.text()) .then(pageSource => /* ... */) 

Per IE puoi anche utilizzare: document.all [0] .outerHTML