纯JS实现下载文本文件

通常我们前端实现下载文件的做法是用一个a标签,href指向所需要下载的文件的地址。这需要用户主动点击a标签才能下载,那么如何实现只通过执行js代码就下载文件呢?
W3C中很早就有element.click()这个规范,但是如果直接将href指向文件地址的a标签模拟click的话浏览器会报一个警告,这是由于浏览器的安全检查导致的。
正确实现的代码是

var filename = 'hello'
var a = document.createElement('a')
var blob = new Blob(['Hello World!'])
a.download = filename
a.href = URL.createObjectURL(blob)
a.click()
URL.revokeObjectURL(blob)

你可能感兴趣的:(纯JS实现下载文本文件)