【问题标题】:How do I save my HTML document using SaveFile.js? [duplicate]如何使用 SaveFile.js 保存我的 HTML 文档? [复制]
【发布时间】:2020-03-31 12:36:09
【问题描述】:

我正在尝试在我的网页上启用保存功能。我正在使用此处找到的“SaveFile.js”模块:“https://github.com/eligrey/FileSaver.js/”当用户单击保存按钮时,文档应将自身下载为 HTML 文件,其中包含输入框、图片等所有元素。但是,下载的不是完整的 HTML 文档。只是 HTML 页面上的一些文本:

为什么会这样?

<button type="button" name="btnSave" onclick="saveHTMLFile()">Save</button>

<script>
  function saveHTMLFile(){
  let fileToSave=document;
  let blob = new Blob([fileToSave],{type:"text/html;charset=utf-8"});
  saveAs(blob,'SavedOutline.html')
}
  </script>

【问题讨论】:

  • document 对象是表示 DOM 的对象,而不是 HTML 字符串。

标签: javascript save


【解决方案1】:

您需要将文档序列化为字符串。 尝试使用document.documentElement.outerHTML 而不仅仅是document。

在您的代码中:


<button type="button" name="btnSave" onclick="saveHTMLFile()">Save</button>

<script>
  function saveHTMLFile(){
  let fileToSave=document.documentElement.outerHTML;
  let blob = new Blob([fileToSave],{type:"text/html;charset=utf-8"});
  saveAs(blob,'SavedOutline.html')
}
  </script>

【讨论】:

    【解决方案2】:

    我不确定它是否会有所帮助,但你可以试试这种代码和平。

    var file = new File(["Hello, world!"], "hello world.txt", {type: "text/plain;charset=utf-8"});
    FileSaver.saveAs(file);

    当您使用 new Blob() 文档时说它仅适用于Saving text

    【讨论】:

    • 这没有帮助,因为问题在于将 HTML 作为字符串获取。您已经丢弃了 HTML 并拥有一个硬编码的字符串。
    猜你喜欢
    • 1970-01-01
    • 2013-07-16
    • 2014-05-16
    • 2014-09-02
    • 2015-12-01
    • 1970-01-01
    • 2013-05-23
    • 1970-01-01
    • 2020-09-17
    相关资源
    最近更新 更多