点击下载文件,一般分为两种,1.接口处理,直接在服务器上下载文件,前端只需要掉一个接口就可以了。2.接口返回一个url,前端根据返回的url,自己处理下载操作。
下载文件可以借助a标签的download属性
// 1.创建a标签,触发点击事件 var a = document.createElement('a'); a.href = url; a.download = "file"; document.body.appendChild(a) a.click(); document.body.removeChild(a); // 2.使用window.open方法 window.open(url) // 3.使用location.href方法 window.location.href = url
使用上面的方法之后,发现第一次点击下载的时候,不是直接在本页面直接下载,总是会刷新本页面的url,或者新打开一个tab进行下载。(我想要的效果是第一次点击的时候,也在本页面进行下载)
鉴于上面方法不能实现我想要的功能,所以我又找到了另一个方法,使用iframe来实现我的功能。
var iframe = document.createElement('iframe'); iframe.src = url iframe.style = "display:none"; document.body.appendChild(iframe); document.body.removeChild(iframe);