Есть ли способ в JS, чтобы получить весь HTML- код в тегах HTML , в виде строки?
document.documentElement.??
javascript
html
document
tostring
Вспышка
источник
источник
document.body.parentElement.innerHTML
Ответы:
MS добавила
outerHTML
иinnerHTML
свойства некоторое время назад.Согласно MDN ,
outerHTML
поддерживается в Firefox 11, Chrome 0.2, Internet Explorer 4.0, Opera 7, Safari 1.3, Android, Firefox Mobile 11, IE Mobile, Opera Mobile и Safari Mobile.outerHTML
находится в спецификации разбора и сериализации DOM .Посмотрите quirksmode для совместимости браузера для того, что будет работать для вас. Вся поддержка
innerHTML
.источник
Ты можешь сделать
в браузерах новее чем IE 9
Смотрите https://caniuse.com/#feat=xml-serializer.
источник
html
тегу, которые сервер фактически никогда не отправлял :(Я считаю, что
document.documentElement.outerHTML
должен вернуть это для вас.Согласно MDN ,
outerHTML
поддерживается в Firefox 11, Chrome 0.2, Internet Explorer 4.0, Opera 7, Safari 1.3, Android, Firefox Mobile 11, IE Mobile, Opera Mobile и Safari Mobile.outerHTML
находится в спецификации разбора и сериализации DOM .На странице MSDN
outerHTML
свойства указано, что она поддерживается в IE 5+. Ответ Колина ссылается на страницу причудливого режима W3C, которая предлагает хорошее сравнение кросс-браузерной совместимости (также для других функций DOM).источник
Я попробовал различные ответы, чтобы увидеть, что возвращается. Я использую последнюю версию Chrome.
Предложение
document.documentElement.innerHTML;
вернулось<head> ... </body>
Предложение Габи
document.getElementsByTagName('html')[0].innerHTML;
вернуло то же самое.Предложение
document.documentElement.outerHTML;
вернулось, и<html><head> ... </body></html>
это все, кроме «doctype».Вы можете получить объект doctype с помощью команды.
document.doctype;
Это возвращает объект, а не строку, поэтому, если вам нужно извлечь подробности в виде строк для всех типов документов вплоть до HTML5 включительно, это описано здесь: Получить DocType для HTML в виде строки с помощью JavascriptЯ хотел только HTML5, поэтому для создания всего документа мне было достаточно следующего:
alert('<!DOCTYPE HTML>' + '\n' + document.documentElement.outerHTML);
источник
Вы также можете сделать:
Вы не получите тег Doctype или html, но все остальное ...
источник
источник
outerHTML
находится в спецификации разбора и сериализации DOM .ВЕРОЯТНО ТОЛЬКО IE:
для FF с 1.0:
может работать в ФФ. (Показывает ОЧЕНЬ ПЕРВЫЕ 300 символов из ОЧЕНЬ начала исходного текста, в основном doctype-defs.)
НО имейте в виду, что обычный диалог «Сохранить как» FF НЕ МОЖЕТ сохранять текущее состояние страницы, скорее, оригинально загруженный X / h / tml-source-text !! (POST-up ss к некоторому временному файлу и перенаправление на него может доставить сохраняемый исходный текст С изменениями / правками, внесенными в него ранее.)
Хотя FF удивляет хорошим восстановлением "back" и включением NICE состояний / значений в "Save (as) ..." для полей ввода, подобных вводу, textarea и т. Д., А не для элементов в contenteditable / designMode ...
Если НЕ XHTML-соотв. xml-файл (mime-type, НЕ просто расширение файла!), можно использовать document.open/write/close, чтобы УСТАНОВИТЬ appr. содержимое исходного слоя, которое будет сохранено в диалоговом окне сохранения пользователя из меню «Файл / Сохранить» в FF. см .: http://www.w3.org/MarkUp/2004/xhtml-faq#docwrite соотв.
https://developer.mozilla.org/en-US/docs/Web/API/document.write
Нейтрально к вопросам X (ht) ML, попробуйте "view-source: http: // ..." в качестве значения src-attrib для iframe (созданного сценарием !?), - чтобы получить доступ к iframes- документ в ФФ:
<iframe-elementnode>.contentDocument
см. Google "MDN ContentDocument" для ок. члены, такие как 'textContent', например. «Получил это много лет назад и не хотел ползти к нему. Если все еще острая необходимость, упомяните это, что я должен погрузиться в ...источник
источник
<html ...>
тег.Использование
document.documentElement
.На этот же вопрос ответили здесь: https://stackoverflow.com/a/7289396/2164160
источник
.outerHTML
и получитьdocument.doctype
, и самый полный ответ Паоло .Чтобы также получить информацию, выходящую за пределы
<html>...</html>
, самое главное,<!DOCTYPE ...>
объявления, вы можете пройти по document.childNodes, превратив каждый из них в строку:Я опубликовал этот код как document-outerhtml на npm.
edit Обратите внимание, что приведенный выше код зависит от функции
doctypeToString
; его реализация может быть следующей (приведенный ниже код публикуется на npm как doctype-to-string ):источник
Я всегда использую
Возможно, это не правильный путь, но я могу понять это, когда увижу это.
источник
<html...>
тег.Мне просто нужен html типа документа и он должен нормально работать в IE11, Edge и Chrome. Я использовал код ниже, он работает нормально.
и в вашем теге привязки используйте это.
пример
источник
Я использую
outerHTML
для элементов (основной<html>
контейнер) иXMLSerializer
для всего остального, включая<!DOCTYPE>
случайные комментарии вне<html>
контейнера, или что-то еще может быть там. Кажется, что пробелы не сохраняются вне<html>
элемента, поэтому по умолчанию я добавляю новые строки с помощьюsep="\n"
.источник
Вы должны пройтись по документу childNodes и получить содержимое externalHTML.
в VBA это выглядит так
используя это, позволяет получить все элементы веб-страницы, включая узел <! DOCTYPE>, если он существует
источник
Правильный путь на самом деле:
webBrowser1.DocumentText
источник