javascript实现下载功能的方法:1、通过a标签实现下载;2、通过“window.open”方法实现下载;3、通过“location.href”方法实现下载;4、通过文件流转blob对象实现下载功能。

本教程操作环境:Windows10系统、javascript1.8.5版本、Dell G3电脑。
javascript 怎么实现下载功能?
js实现文件下载功能
一、a标签下载
立即学习“Java免费学习笔记(深入)”;
优点:
可以直接下载txt、png、pdf、exe、xlsx等类型文件
缺点:
a标签只能做get请求,所以url有长度限制
无法获取下载进度
跨域限制
无法在header中携带token做鉴权操作
无法判断接口是否成功
IE兼容问题
二、window.open下载
优点:
简单方便
缺点:
会出现URL长度限制问题
需要注意url编码问题
无法获取下载进度
无法在header中携带token做鉴权操作
无法判断接口是否成功
无法直接下载浏览器可直接预览的文件类型(txt、png、pdf会直接预览)
三、location.href 下载
优点
简单方便直接
可以下载大文件(G以上)
缺点
会出现URL长度限制问题
需要注意url编码问题
无法获取下载进度
无法在header中携带token做鉴权操作
无法直接下载浏览器可直接预览的文件类型(txt、png、pdf会直接预览)
无法判断接口是否返回成功
三、文件流转blob对象下载
优点:
可以下载txt、png、pdf等类型文件
可以在header中携带token做鉴权操作
可以获取文件下载进度
可以判断接口是否返回成功
缺点:
兼容性问题,IE10以下不可用,注意Safari浏览器,官网给出 Safari has a serious issue with blobs that are of the type application/octet-stream
将后端返回的文件流全部获取后才会下载
推荐学习:《JavaScript视频教程》











