使用Angular 5在mac OS上下载/导出json文件
我尝试使用下面的代码在我的设备“mac os”上下载json对象。结果是在浏览器上显示json主体,尽管它可以与其他操作系统“android,windows”一起使用 有没有其他解决办法使用Angular 5在mac OS上下载/导出json文件,json,angular,macos,Json,Angular,Macos,我尝试使用下面的代码在我的设备“mac os”上下载json对象。结果是在浏览器上显示json主体,尽管它可以与其他操作系统“android,windows”一起使用 有没有其他解决办法 function downloadJsonFile(fileName, jsonObject) { let fileContents = JSON.stringify(jsonObject); let data = "text/json;charset=utf-8," + encodeURICo
function downloadJsonFile(fileName, jsonObject) {
let fileContents = JSON.stringify(jsonObject);
let data = "text/json;charset=utf-8," + encodeURIComponent(fileContents);
let a = document.createElement('a');
a.href = 'data:' + data;
a.download = fileName + '.json';
a.click();
}
试着这样做: 演示-->
事实上没有错误,只是没有按要求回复,好像我什么都没做!这很奇怪。我正试图用Ipad打开我的网站,它可以在其他设备上正常工作。是的,现在它可以工作了。谢谢,但问题是,它被保存为未知文件,而不是使用变量strfilenameaccpt和Vote up中预期的filenamepass filename(如果解决方案有帮助)。
download(strData, strFileName, strMimeType) {
strData = JSON.stringify(strData);
var D = document,
A = arguments,
a = D.createElement("a"),
n = A[1];
a.href = "data:" + strMimeType + "charset=utf-8," + (strData);
if ('download' in a) {
a.setAttribute("download", n);
a.innerHTML = "downloading...";
D.body.appendChild(a);
setTimeout(function () {
var e = D.createEvent("MouseEvents");
e.initMouseEvent("click", true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
a.dispatchEvent(e);
D.body.removeChild(a);
}, 66);
return true;
};
var f = D.createElement("iframe");
D.body.appendChild(f);
f.src = "data:" + (A[2] ? A[2] : "application/octet-stream") + (window.btoa ? ";base64" : "") + "," + (strData);
setTimeout(function () {
D.body.removeChild(f);
}, 333);
return true;
}