首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >创建下载js的文件

创建下载js的文件
EN

Stack Overflow用户
提问于 2013-12-02 10:09:39
回答 2查看 2.4K关注 0票数 2

我正在接收来自API的JSON输出,我希望将它与JS一起使用,并将该输出保存到文件中。有没有任何方法可以使用带有输出的JS触发浏览器下载机制?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-12-02 11:50:59

也许现在有些浏览器支持属性download,但是您不会触发浏览器自动下载文件。

我知道的唯一方法是@BAS的解决方案,但没有文件名。

用铬测试..。

代码语言:javascript
运行
复制
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/

更新直接下载 ..。我测试过的铬。

在附加模拟点击

代码语言:javascript
运行
复制
var e=document.createEvent('Events');
    e.initEvent('click',true,false);
    document.getElementById('dl').dispatchEvent(e);

http://jsfiddle.net/8yQcW/1/

票数 3
EN

Stack Overflow用户

发布于 2013-12-02 10:25:52

您可以使用数据URI来尝试:

代码语言:javascript
运行
复制
function triggerDownload(json) {
 var dataUri = 'data:text;charset=utf-8,' + json;
 window.open(dataUri);
}

尝试在浏览器中输入data:text;charset=utf-8,{"Key":"Value"}地址栏。它应该显示保存对话框。

有关更多信息和浏览器支持,请参见这里

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20325630

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档