我正在尝试允许我的网页上有一个保存功能。我使用的是“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>发布于 2019-12-06 14:06:05
您需要将文档序列化为字符串。尝试使用document.documentElement.outerHTML,而不是只使用document。
document.documentElement将为您提供documentel.outerHTML的根元素,将元素的html作为字符串提供给您。
在您的代码中:
<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>发布于 2019-12-06 13:56:49
我不确定它是否会有帮助,但您可以尝试这种平静的代码。
var file = new File(["Hello, world!"], "hello world.txt", {type: "text/plain;charset=utf-8"});
FileSaver.saveAs(file);
当您使用新Blob()文档时,说明它只适用于Saving text
https://stackoverflow.com/questions/59214463
复制相似问题