Comment puis-je obtenir la source HTML de la page?

Existe-t-il un moyen d'accéder au code source HTML de la page à l'aide de javascript?

Je sais que je peux utiliser document.body.innerHTML mais il ne contient que le code dans le corps. Je souhaite obtenir tout le code source de la page, y compris les étiquettes de la tête et du corps avec leur contenu, et, si c'est possible, aussi la balise html et le doctype. C'est possible?

Utilisation

 document.documentElement.outerHTML 

ou

 document.documentElement.innerHTML 

Cela peut se faire dans un one-liner en utilisant XMLSerializer .

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

Ce qui donne String

 <!DOCTYPE html><html><head> <title>html - javascript page source code - Stack Overflow</title> ... 

Une façon de le faire serait de re-demander la page à l'aide de XMLHttpRequest , vous obtiendrez la page entière textuellement à partir du serveur Web.

Pour IE, vous pouvez également utiliser: document.all [0] .outerHTML

À condition que

  • Le véritable code source html est recherché (non disponible en URSS)
  • Et que la page était chargée en utilisant la méthode GET,

La source de la page peut être re-téléchargée:

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