简而言之:
实现的基础是浏览器本身的下载机制
我们要做的是如何在js上将数据变成一个可以被浏览器下载的东西
第一步:使用Blob对象将你要保存在本地的数据转换成二进制数据
第二部:window.URL.createObjectURL方法,制造一个指向上面的二进制数据的url
第三部:通过动态添加a标签来实现保存二进制数据的目的
下面是一个例子:
let data="abc";//要保存的数据
//第一步
let blob=new Blob([data],{type:"text/plain;charset=UTF-8"});
//第二步
let url=window.URL.createObjectURL(blob);
//这里你会看到类似的地址:blob:http://localhost:8080/d2dbbe3f-7466-415b-a2d0-387cff290acb
console.log(url);
//动态创建a标签
let link=document.createElement('a');
link.style.display="none";
link.href=url;
link.setAttribute('download','model.txt');
document.body.appendChild(link);
link.click();
document.body.removeChild(link);