Как получить источник HTML со страницы?

Есть ли способ получить доступ к исходному HTML-коду страницы с помощью javascript?

Я знаю, что могу использовать document.body.innerHTML, но он содержит только код внутри тела. Я хочу получить весь исходный код страницы, включая теги head и body с их содержимым, и, если возможно, также тег html и doctype. Возможно ли это?

Ответ 1

Используйте

document.documentElement.outerHTML

или

document.documentElement.innerHTML

Ответ 2

Это можно сделать в однострочном режиме, используя XMLSerializer.

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

Что дает String

<!DOCTYPE html><html><head>

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

Ответ 3

Один из способов сделать это - перепроверить страницу с помощью XMLHttpRequest, тогда вы получите всю страницу дословно из веб-сервер.

Ответ 4

При условии, что

  • Требуется исходный исходный код html (не текущая сериализация DOM)
  • и чтобы страница была загружена с использованием метода GET,

источник страницы может быть повторно загружен:

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

Ответ 5

Для IE вы также можете использовать: document.all [0].outerHTML