1.首先创建 下载的方法
- 先创建一个
blob
类文本对象(Binary large object),用它来虚拟表示一个文件。 - 再用
window.URL.createObjectURL
来生成blob
对象URL。这个对象URL是一个DOMString
,可以用在href
和src
之类的属性上。 - 创建一个隐藏的
<a>
标签。 - 设置
<a>
标签的href
和download
属性。 - 触发这个
<a>
标签的click
事件,实现下载。 - 用
setTimeout()
延时一小段时间,让click()
事件充分响应。 - 延时过后,
revokeObjectURL
释放由createObjectURL
创建的 object URL。当该 object URL 不需要的时候,我们要主动调用这个方法,获取最佳性能和内存使用。
已经封装成一个函数,filename
是保存的文件名,content
是保存到这个文件中的内容:
function download(filename, content) { var blob = new Blob([content], {type: 'text/plain'}); var url = window.URL.createObjectURL(blob); var a = document.createElement('a'); a.style = "display: none"; a.href = url; a.download = filename; document.body.appendChild(a); a.click(); setTimeout(function () { document.body.removeChild(a); window.URL.revokeObjectURL(url); }, 5); }
2 。创建点击事件
调用上边的方法即可实现下载