使用 JS 和 html5 从字符串创建文本文件
Create Text file from String using JS and html5
我想从字符串创建一个文本文件。 目前我正在使用一个函数,它接受一个数组并将其变成一个字符串,然后使用该字符串我想创建一个用户下载的本地文本文件。我试过使用这种方法
function createFile(){ //creates a file using the fileLIST list
var output= 'Name 't Status'n'+ fileLIST[0][0].name+''t'+fileLIST[0][1]+''n';
var Previous = fileLIST[0];
for (var i=1; i<fileLIST.length; i++)
if (fileLIST[i][1] =='none' || fileLIST[i][1] == Previous[1])
continue
else {
Previous = fileLIST[i]
output = output + fileLIST[i][0].name +''t'+fileLIST[i][1] + ''n';}
window.open("data:text/json;charset=utf-8," + escape(output));//should create file
display(); }
我也更喜欢JS或HTML5答案。
提前谢谢你
将object
转换为 JSON 字符串。
var json_string = JSON.stringify(object, undefined, 2);
笔记:
- 如果已有字符串,请跳过上述步骤。
- 如果您不希望它的格式很好,请删除
, undefined, 2
。
创建下载链接并单击它:
var link = document.createElement('a');
link.download = 'data.json';
var blob = new Blob([json_string], {type: 'text/plain'});
link.href = window.URL.createObjectURL(blob);
link.click();
BlobBuilder 现已过时。 请改用这个:
https://developer.mozilla.org/en-US/docs/Web/API/Blob#Blob_constructor_example_usage
我最终使用了这段代码。 它创建一个链接来下载文件的 URL。
window.URL = window.webkitURL || window.URL;
window.BlobBuilder = window.BlobBuilder || window.WebKitBlobBuilder || window.MozBlobBuilder;
file = new WebKitBlobBuilder();
file.append(output);
var a = document.getElementById("downloadFile");
a.hidden = '';
a.href = window.URL.createObjectURL(file.getBlob('text/plain'));
a.download = 'filename.txt';
a.textContent = 'Download file!';
}
此外,这种方式对网站的增加更少,使其成为一个较轻的网站,用于慢速连接。我的 HTML 有一个空的div,它附加到其中。
<div class ='paginationLIST' id='pagination'></div>
我建议你使用隐藏的iframe
而不是window.open
,使其成为"一种更干净的方法">
我相信强制下载是text/octet-stream
而不是text/json
。据我所知,您不能以这种方式设置文件名。
但是,Chrome(我认为 18+ (的 <a>
标签具有download
属性,您可以指定文件名以及使用 url 的blob:
。
相关文章:
- Firefox插件:保存到文本文件的HTTP日志,其中包含时间、用户名、计算机名;t创建文本文件
- 在提交之前创建文本区域预览
- 如何在列表(HTML)中创建文本框
- 如何使用javascript在点击下拉列表中创建文本框
- 使用JavaScript/Jquery创建文本文件下载/更新到本地客户端机器中的特定位置
- 无法使用javascript创建文本区域
- 正在创建文本节点
- 使用 JavaScript 创建文本文件
- 即时创建文本文件并要求用户下载
- 如何使用Javascript创建文本滑块
- 禁用使用挖空.js动态创建文本框的特定文本框
- FSO.创建文本文件 - 停止而不执行任何操作
- 在jquery中使用追加创建文本框和按钮(我得到重复的结果)
- 如何在 html 中创建文本框,如 Outlook To(收件人姓名)
- 为Javascript游戏创建文本对话
- 用于在 Photoshop 中的位图图像中创建文本的 Photoshop 脚本
- 使用 JS 和 html5 从字符串创建文本文件
- 如何使用网络编程创建文本曲线效果.首选(C#,VB JavaScript或JQuQuery)
- 通过 js 创建文本框
- 如何创建文本滑块