本文介绍纯前端下载文件的方法。html
本文第一发布地址: http://www.cnblogs.com/ypinchina/p/8126102.html前端
本人不喜欢多废话浏览器
需求,对于不少浏览器,若是只知道下载对应url的状况下,使用a标签,点击下载文件,会直接打开该文件,而不是下载文件。因而H5多了一个该死的属性,'doload' 属性。该属性在 canIuse里查兼容性,竟然连,IE11都不支持。所以,没啥意思,因而发帖求了个能用的方法,兼容全部现代浏览器。以及IE11ide
如下是ES6的写法:url
直接贴代码。非ES6的状况,本人概不负责,对于坐吃等死耗日子的开发,我没啥好说的spa
export function downloadFile(fileName, url) { if (isIE()) { ieDown(url) } else { const aLink = document.createElement('a') const evt = document.createEvent('MouseEvents') evt.initMouseEvent('click', true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null) aLink.download = fileName aLink.href = url aLink.dispatchEvent(evt) } } const ieDown = url => { window.open(url) } const isIE = () => { const explorer = window.navigator.userAgent return explorer.indexOf('MSIE') >= 0 || explorer.indexOf('Trident/7.0') >= 0 || explorer.indexOf('Edge') >= 0 }
本文地址:http://www.cnblogs.com/ypinchina/p/8126102.htmlcode
完。htm