时间:2021-07-01 10:21:17 帮助过:30人阅读
JavaScript保存文本数据示例,当然不仅仅是文本其他类型的也是可以的
首先上代码
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title></title> <script> var fl; function g(f) { fl = null; if(f) { document.getElementById("fname").innerText = f.name; document.getElementById("fsize").innerText = f.size; fl = f; } } function dataURLSave1() { if(fl) { var reader = new FileReader(); reader.onload = function(e) { ck(e.target.result); }; reader.readAsDataURL(fl); } } function dataURLSave2() { if(fl) { var reader = new FileReader(); reader.onload = function(e) { ck('data:text/plain;charset=utf-8,' + e.target.result); }; reader.readAsText(fl); } } function objectURLSave() { if(fl) { ck(URL.createObjectURL(fl)); setTimeout(function(){ URL.revokeObjectURL(fl);//用URL.revokeObjectURL()来释放这个object URL },200); } } function ck(href) { document.getElementById("hf").href = href; document.getElementById("hf").download = fl.name; document.getElementById("hf").click(); } </script> </head> <body> <input type="file" onchange="g(this.files[0])"> <div>文件名:<span id="fname"></span></div> <div>大小:<span id="fsize"></span></div> <button onclick="dataURLSave1()">保存(dataURL方式1)</button> <button onclick="dataURLSave2()">保存(dataURL方式2)</button> <button onclick="objectURLSave()">保存(objectURLSave方式)</button> <a id="hf" href="" download="download"></a> </body></html>
实现分类
一般情况下使用浏览器自带功能实现导出类似与文本文件的方式简单可以分为两种
1.DataURL
2.ObjectURL
原理
其实原理跟平时下载是一样的,只不过把下载的连接替换成了以上两种URL
比较
DataURL方式
在示例代码中DataURL方式1是将文本文件直接读取成DataURL,DataURL方式2是通过读取文本内容然后将内容与(data:text/plain;charset=utf-8,...)进行拼接
DataURL方式1和DataURL方式2对文件文本编码有一定要求,容易出现乱码
ObjectURL方式
ObjectURL是将内存中的对象转为ObjectURL,相比DataURL的话ObjectURL比较不容易出现乱码,但DataURL比较固定ObjectURL比较不固定
相信看了本文案例你已经掌握了方法,更多精彩请关注Gxl网其它相关文章!
相关阅读:
怎样用JS编写模拟器
ES6的set数据结构和map数据结构
ES6里新的数组API详解
以上就是怎样使用JavaScript保存文本数据的详细内容,更多请关注Gxl网其它相关文章!