数据:attachment/csv在Edge中无法下载

4

当我从API接收到特定的数据时,我希望能够触发一个下载。我采用以下方式实现:

const anchor = window.angular.element('<a/>');
anchor.css({display: 'none'});
window.angular.element(document.body).append(anchor);

anchor.attr({
  href: 'data:attachment/csv;charset=utf-8,' + encodeURI(data),
  target: '_blank',
  download: 'somedata.csv',
})[0].click();

anchor.remove();

这种方法在Chrome和Firefox中都有效。然而,在Edge中,由于某种原因,它不起作用。

为什么它在Edge中不起作用,我该如何解决?

1个回答

2

我也遇到了同样的问题,发现了这篇绝妙的文章,作者是Danny Pule,所以你的代码应该长这样:

if (navigator.msSaveBlob) { // IE 10+
    var exportedFilenmae = 'somedata.csv';
    var blob = new Blob([data], { type: 'text/csv;charset=utf-8;' });
    navigator.msSaveBlob(blob, exportedFilenmae);
} else {
    ..........
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接