Как скачать innerHTML текущего документа в виде файла?

Есть ли способ загрузить текущий документ? innerHTML как файл программно?

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

 var save = document.createElement('a');
 save.href = "my location href.attr";
 save.target = '_blank';
 save.download = fileName || 'unknown';

 var event = document.createEvent('Event');
 event.initEvent('click', true, true);
 save.dispatchEvent(event);

1 ответ

Решение

Возможно, что-то подобное? Это, вероятно, не очень кросс-браузер, однако, но он работает в Chrome.

function downloadCurrentDocument() {
  var base64doc = btoa(unescape(encodeURIComponent(document.documentElement.innerHTML))),
      a = document.createElement('a'),
      e = new MouseEvent('click');

  a.download = 'doc.html';
  a.href = 'data:text/html;base64,' + base64doc;
  a.dispatchEvent(e);
}
    
downloadCurrentDocument();

Другие вопросы по тегам