js 自动保存字符串到本地文件
由于 JavaScript 在浏览器中运行时有很多限制,不能直接访问本地文件系统。但可以使用浏览器的 File API 来模拟访问本地文件系统,从而实现保存字符串到本地文件的功能。
以下是一个使用 File API 实现保存字符串到本地文件的示例代码:
function saveTextToFile(text, filename) {
var blob = new Blob([text], {type: "text/plain;charset=utf-8"});
saveAs(blob, filename);
}
function saveAs(blob, filename) {
if (navigator.msSaveBlob) {
navigator.msSaveBlob(blob, filename);
} else {
var link = document.createElement("a");
if (link.download !== undefined) {
var url = URL.createObjectURL(blob);
link.setAttribute("href", url);
link.setAttribute("download", filename);
link.style.visibility = "hidden";
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
URL.revokeObjectURL(url);
}
}
}
// 保存字符串到本地文件
var text = "Hello, world!";
var filename = "hello.txt";
saveTextToFile(text, filename);
该代码中的 saveTextToFile 函数接受两个参数:要保存的字符串和保存的文件名。该函数使用 Blob 对象将字符串转换为二进制数据,并设置 MIME 类型为 text/plain,以便浏览器知道如何处理该数据。然后调用 saveAs 函数将 Blob 对象保存到本地文件。
saveAs 函数首先检查浏览器是否支持 navigator.msSaveBlob 方法,如果支持,则使用该方法保存文件。否则,创建一个 <a> 元素并设置其 href 和 download 属性,然后将其添加到文档中并模拟点击该元素。最后,将 <a> 元素从文档中删除,并使用 URL.revokeObjectURL 方法释放 URL 对象的内存
原文地址: http://www.cveoy.top/t/topic/eBQO 著作权归作者所有。请勿转载和采集!