У меня есть объект document и мне нужно сохранить весь HTML код страницы в отдельный файл. Хочу получить полное содержимое между тегами <html>, включая все элементы, стили и скрипты, чтобы страница могла корректно отобразиться. При этом не важно, будут ли включены сам тег <html> и DOCTYPE или нет.
exportPage("mypage.html")
Или можно как-то так:
downloadHTML(currentDoc, "mypage.html")
Также интересует случай, когда нужно сохранить документ из iframe:
var frame = document.getElementById("myFrame")
var frameDoc = frame.contentDocument || frame.contentWindow.document
downloadHTML(frameDoc, "mypage.html")
Как это можно реализовать в JavaScript? Какие есть способы экспорта HTML содержимого в файл?
Тут всё просто: берёшь document.documentElement.outerHTML для полного HTML и используешь Blob API. Создаёшь функцию, получаешь весь код, заворачиваешь в Blob с типом text/html, делаешь временную ссылку через URL.createObjectURL() и кликаешь по ней программно. С iframe работает нормально, но смотри на CORS если фрейм с другого домена.
Попробуй использовать document.documentElement.outerHTML для получения всего HTML с тегом <html>. Затем создавай Blob и загружай файл через URL.createObjectURL. С iframe могут быть проблемы из-за CORS - ты имеешь доступ к документу внутри него?
я делал такое через blob объект и URL.createObjectURL. очень просто - берешь document.documentElement.outerHTML, создаешь blob с типом text/html, делаешь ссылку для скачивания и программно кликаешь. работает во всех современных браузерах. только помни - внешние стили могут не сохраниться, но основное содержимое будет