2009-09-02 15 views
17

C'è un modo per accedere al codice sorgente HTML della pagina usando javascript?Come ottengo il codice sorgente HTML dalla pagina?

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 possibile, anche il tag html e il doctype. È possibile?

risposta

25

Usa

document.documentElement.outerHTML 

o

document.documentElement.innerHTML 
+0

Non so il motivo per cui in Firefox l'oggetto document.documentElement non ha la proprietà outerHTML, ma con l'innerHTML posso ottenere quasi tutto tranne il doctype quindi grazie! – mck89

+7

@ mck89: nessun browser, ma IE avrà "outerHTML". –

+5

Tieni presente che la fonte che ottieni con Firefox/la maggior parte dei browser è la "vera" fonte che hai fornito. In IE si otterrà l'HTML "live" della pagina, comprese le modifiche apportate dall'utente ai moduli, qualsiasi nuovo contenuto DOM ecc. In IE sarà anche il minuscolo di tag invalido maiuscolo che IE fornisce quando richiede l'estensione .INnerHTML di elementi. – scunliffe

8

Un modo per farlo sarebbe quello di richiedere nuovamente la pagina utilizzando XMLHttpRequest, allora si otterrà l'intera pagina testualmente dal web server.

0

Per esempio, si può usare anche: document.all [0] .outerHTML

10

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

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

che dà String

<!DOCTYPE html><html><head> 

<title>html - javascript page source code - Stack Overflow</title> 
... 
0

A condizione che

  • vero codice sorgente HTML è voluto (non attuali serization DOM)
  • e che la pagina è stata carico con GET method,

il sorgente della pagina può essere ri-scaricato:

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

Questo è inaffidabile perché non c'è garanzia che il server servirà lo stesso contenuto la prossima volta. –

Problemi correlati