Javascript 创建文件以下载js

Javascript 创建文件以下载js,javascript,file,download,Javascript,File,Download,我从一个API接收到一个JSON输出,我想将它与JS一起使用,并将该输出保存到文件中。是否有任何方法可以使用JS with thet output触发浏览器下载机制?您可以使用数据URI进行尝试: function triggerDownload(json) { var dataUri = 'data:text;charset=utf-8,' + json; window.open(dataUri); } 尝试输入数据:文本;charset=utf-8,{“Key”:“Value”}插入浏

我从一个API接收到一个JSON输出,我想将它与JS一起使用,并将该输出保存到文件中。是否有任何方法可以使用JS with thet output触发浏览器下载机制?

您可以使用数据URI进行尝试:

function triggerDownload(json) {
 var dataUri = 'data:text;charset=utf-8,' + json;
 window.open(dataUri);
}
尝试输入
数据:文本;charset=utf-8,{“Key”:“Value”}
插入浏览器地址栏。它应该会显示“保存”对话框


有关更多信息和浏览器支持,请参阅。

可能现在有些浏览器支持属性
下载
,但您不会触发浏览器自动下载文件

我知道的唯一方法是@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'));
范例

更新直接下载作品。。。在我测试的铬上

单击“添加模拟”

var e=document.createEvent('Events');
    e.initEvent('click',true,false);
    document.getElementById('dl').dispatchEvent(e);