Получить исходный код текущей страницы, используя javascript и DOM [duplicate]

This question already has an answer here:

Use javascript to get raw html code 2 answers

Как получить источник текущей страницы, используяJavaScript а такжеDOM? Would I have to use AJAX?

 epascarello16 июн. 2012 г., 14:37
Какой источник страницы? Нам нужно больше информации, капитан!
 Loïs Di Qual16 июн. 2012 г., 14:37
По & quot; а & quot; страница, вы имеете в виду текущую страницу или удаленную?
 swatkat16 июн. 2012 г., 14:55
Просто извлеченная страница сделает.
 swatkat16 июн. 2012 г., 14:42
Извините, я исправил это!
 haylem16 июн. 2012 г., 14:43
Вы хотите источник в настоящее времяrendered страница, или источник страницы, которая былаfetched? Это не обязательно одно и то же.

Ответы на вопрос(2)

For the current page's HTML, as rendered:
document.documentElement.outerHTML

Alternatively, you could use innerHTML, but you'd only get the content of the <body> tag.

For the current page's HTML, as retrieved on page load:

Повторно запросите страницу динамически с помощью вызова AJAX.

Using jQuery (easy path):

Любая другая современная библиотека JavaScript позволила бы сделать что-то подобное, но для примера, с jQuery это было бы:

$.ajax(window.location.href, {
  success: function (data) {
    console.log(data);
  }
});
Using the XMLHttpRequest object (more involved):

Очевидно, что, идя по голому маршруту, вам придется самостоятельно обрабатывать еще несколько вещей, включая поддержку кросс-браузерной работы, но суть этого будет:

var request = new XMLHttpRequest();

request.open('GET', window.location.href, false);
request.send();

if (request.status === 200) {
  console.log(request.responseText);
}
 16 июн. 2012 г., 14:59
Мы оба наполовину правы и наполовину неправы: pinnerHTML дает тебе<head>...</head><body>...</body>с пропавшим без вестиhtml элемент. Я отредактирую свой ответ соответственно: D

Источник текущей страницы:

document.documentElement.outerHTML

Очевидно, именно так сейчас выглядит страница. В случае DHTML, если вы хотите получить неизмененный источник в том виде, в котором он был получен с сервера, вам нужно будет сделать AJAX-вызов, чтобы получить его снова и перехватить его там.

РЕДАКТИРОВАТЬ: было неправильноinnerHTML.

 28 мая 2013 г., 19:13
Это все еще не будет включать декларацию типа документа :-)

Ваш ответ на вопрос