【问题标题】:Encode Download Function编码下载功能
【发布时间】:2018-01-17 11:32:20
【问题描述】:

尝试使用 JavaScript encode 函数下载一组 DICOM (Medical Image) 坐标时。但是,当我们按下将处理保存事件的按钮时,它会打开一个“Save As:”窗口,要求我们保存文件,但是当我们按下“Save " 它说:

失败 - 没有文件

有关该问题的更多描述性信息,图像如下:

我们正在使用来自Google ChromeCORS (Allow-Control-Allow-Origin) plugin,这可能意味着函数的错误行为。只是对这个问题的一个想法。

这是请求代码:

function download(data, name, type) {
    var link = document.createElement("a");
    var url = new Blob([JSON.stringify({a: '1'}, null, 4)], {type: type});

    link.setAttribute( 'href', url );
    link.setAttribute( 'download', name );

    var event = document.createEvent( 'MouseEvents' );
    event.initMouseEvent( 'click', true, true, window, 1, 0, 0, 0, 0, false, false, false, false, 0, null);
    link.dispatchEvent( event );
}

版本说明

  • 谷歌浏览器 (v. 63.0.3239.132)
  • Allow-Control-Allow-Origin (v. 1.0.3)
  • macOS Sierra (v. 10.12.6)

【问题讨论】:

    标签: javascript json download encode


    【解决方案1】:

    使用URL#createObjectURL:

    function download(data, name, type) {
        var url = URL.createObjectURL(new Blob([JSON.stringify({a: '1'}, null, 4)], {type: type}));
    
        link.setAttribute( 'href', url );
        link.setAttribute( 'download', name );
    }
    
    download('data', 'name', 'text/plain');
    <a id="link">download</a>

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-12-15
      • 1970-01-01
      • 1970-01-01
      • 2011-12-06
      • 2012-04-08
      • 1970-01-01
      • 2018-10-25
      • 1970-01-01
      相关资源
      最近更新 更多