如何模仿锚点标签的下载属性?

4
"

<a>标签的download属性可以帮助Edge 更好地打开下载链接(即在意识到不再需要使用时关闭目标标签页)。当JavaScript负责启动下载时,是否有任何方法可以做到这一点?例如:

HTML:

"
<span class='btn-link' onclick='openReport(@orderNumber, @tableBodyId); return false;'>

Javascript(与ASP.NET MVC控制器交互):

function openReport(orderNumber, tableBodyId) {
    var url = "/Reports/ValuationReportDocPdf?orderNumber=" + orderNumber;
    var win = window.open(url, '');
    setTimeout(function () { location.reload(); }, 3000);
}

1
也许这对你有用:https://dev59.com/C4Lba4cB1Zd3GeqPZxpL#25087107 - chrki
1
@chrki - 是的,这对我很有帮助,谢谢!请提交为答案,我会接受。我还必须检测Edge(因为建议的方法在FF / Chrome中不起作用),使用 - OutstandingBill
1个回答

2
我不知道有任何JavaScript函数或设置可以在下载时更改文件名,也没有任何可以模仿<a>标签上的download属性的函数。
在一个类似的问题中,用户3758133提供的答案概述了一种解决方法,其中你可以编程创建一个链接,附加正确的download属性并触发点击:
("#downloadbutton").click(function() {
  //var content = content of file;
  var dl = document.createElement('a');
  dl.setAttribute('href', 'data:text/csv;charset=utf-8,' + encodeURIComponent(content));
  dl.setAttribute('download', 'filename.txt');
  dl.click();
});

谢谢!如果有人感兴趣,这里提供了一些进一步的细节,关于我如何实现这个功能。 - OutstandingBill

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