网上的文章乱七八糟,还不支持 IE8,
这里整理了一下,支持 IE 浏览器,360浏览器,火狐,谷歌
当然最简单的其实是后端用流文件的方式给出链接,前端点击a标签直接就下载了(以前chrome浏览器下是这么做的,其他浏览器没测过)
//url为文件链接地址如: http://xx.xx.com/music.mp3
//docx类型也支持,其他类型没有测过
function download(url) {
//是否支持download属性
//支持download属性的用download
//不支持的用form表单
var isDownLoad = 'download' in document.createElement('a');
if(!isDownLoad) {
var $form = $('<form method="GET"></form>');
$form.attr('action', url);
$form.appendTo($('body'));
$form.submit();
$form.remove();
} else {
var aLink = document.createElement('a');
aLink.href = url;
aLink.download =''; // HTML5新增的属性,可以指定保存文件名,可以不要后缀,注意,file:///模式下不会生效
var event;
if(window.MouseEvent) {
event = new MouseEvent('click');
} else {
event = document.createEvent('MouseEvents');
event.initMouseEvent('click', true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
}
aLink.dispatchEvent(event);
}
}