创建文件下载js
Create file to download js
我正在接收来自API的JSON输出,我想将其与JS一起使用,并将该输出保存到文件中。有没有什么方法可以用JS和软输出触发浏览器下载机制?
也许现在有些浏览器支持属性download
,但您不会触发浏览器自动下载文件。
我唯一知道的是@BAS的解决方案,但没有文件名。
铬测试。。
array=[{a:'1',b:'2'},{x:'3',y:'4'}];
function dl(array,filename){
var b=document.createElement('a');
b.download=filename;
b.textContent=filename;
b.href='data:application/json;base64,'+
window.btoa(unescape(encodeURIComponent(JSON.stringify(array))))
// or
// b.href='data:application/javascript;charset=utf-8,'+JSON.stringify(json);
return b
}
document.body.appendChild(dl(array,'my.json'));
示例
http://jsfiddle.net/8yQcW/
更新直接下载工作。。。我测试了铬。
附加模拟点击
var e=document.createEvent('Events');
e.initEvent('click',true,false);
document.getElementById('dl').dispatchEvent(e);
http://jsfiddle.net/8yQcW/1/
您可以使用数据URI:进行尝试
function triggerDownload(json) {
var dataUri = 'data:text;charset=utf-8,' + json;
window.open(dataUri);
}
尝试在浏览器地址栏中输入data:text;charset=utf-8,{"Key":"Value"}
。它应该显示保存对话框。
有关更多信息和浏览器支持,请参阅此处。
相关文章:
- 如何使用nginx强制下载js文件
- 巴比伦JS-场景从本地文件下载
- 如何保护css和js文件意味着最终用户无法下载我们的css和jss文件
- 创建文件下载js
- 如何限制网站中 js 文件的下载
- JS触发的文件下载弄乱了重音字符
- Node.js:流式远程文件到文件下载
- 使用Ajax调用从Node.js服务器下载文件会产生截断的数据和膨胀的blob
- 下载整个页面(包括“.html”文件、图像、“.js”文件、css等)
- 从以zip下载的捆绑包中加载UIWebview中的.js文件
- Node.js异步下载多个文件
- 迫使客户端浏览器重新下载我们的asp.net网络应用程序的优雅方式'.css和.js文件(不完全禁用缓存)
- 将下载的.js文件添加到Netbeans中现有的Project中
- JS文件在script标签's src属性下载,但没有执行(从ajax调用)
- 如果相同的css &Js文件动态下载多次
- 使用requires只下载需要的js文件
- 如何为客户端提供从node.js服务器下载的文件(exe或rar)
- 在JS中添加文件下载时的暂停
- 如何指示浏览器,js文件已更改,而不刷新它将反映在客户端.所以它下载了新的副本
- node.js在p2p文件下载中写入无序的文件流