纯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)
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,923评论 25 709
  • 1.几种基本数据类型?复杂数据类型?值类型和引用数据类型?堆栈数据结构? 基本数据类型:Undefined、Nul...
    极乐君阅读 10,996评论 0 106
  • 1.几种基本数据类型?复杂数据类型?值类型和引用数据类型?堆栈数据结构? 基本数据类型:Undefined、Nul...
    伯纳乌的追风少年阅读 26,020评论 2 46
  • 文/米兰烛光 院落的花开了一季又一季,顽强了我走过的青葱岁月。 如今还是只有我一个人,突然很想跟花儿一样烂漫时花开...
    米兰S阅读 2,920评论 0 0
  • 几星期前,我留校,寂静晚云空。我和几个同学在宿舍里聊了很多,但最终还是聊起了学习。 当时,我们聊着考试,聊起了我们...
    圣海乾坤阅读 3,359评论 0 5

友情链接更多精彩内容