Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Angular 5在mac OS上下载/导出json文件_Json_Angular_Macos - Fatal编程技术网

使用Angular 5在mac OS上下载/导出json文件

使用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

我尝试使用下面的代码在我的设备“mac os”上下载json对象。结果是在浏览器上显示json主体,尽管它可以与其他操作系统“android,windows”一起使用

有没有其他解决办法

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;
  }