目录

在当前窗口中直接下载文件的几种方法

传统的方法

在按钮的点击事件函数中,在新标签页中打开下载链接。

1
window.open('/download/exportdata');

会打开一个空白页面,然后消失,用户体验不太好。

优雅的用户体验

JS构造form后提交

1
2
3
4
var $form = $('<form method="GET"></form>');
$form.attr('action', '/download/exportdata');
$form.appendTo($('body'));
$form.submit();

JS构造iframe

1
2
3
4
var iframe = document.createElement("iframe");
iframe.style.display = "none";
iframe.src = '/download/exportdata';
document.body.appendChild(iframe);

页面中使用含有download属性的a标签

1
<a href="/download/exportdata" download="xxx.csv">download</a>