纯前端下载任意文件案例

介绍

  • 纯前端,不涉及后端或接口。这里演示的是下载html文件,这个思路可以实现想要的任何文件。
  • 点击下载按钮,下载一个html文件(任何文件都可以实现),打开下载的文件展示一个的html网页

演示下载文件

思路

  1. 编写对应的html字符串信息
  2. 把字符串信息转成url,赋值给a标签
  3. a标签设置download属性后,可以下载url中的内容信息

代码实现

const scriptDataId: string = 'json-script';
// 定义一个包含 HTML 内容的字符串
  const htmlStr: string = `
    <!DOCTYPE html>
    <html lang="en">

      <head>
        <meta charset="UTF-8"> 
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>导航集合</title>
      </head>

      <body>
      </body> 
      
      <script> 
        ...... // 此处省略业务代码,有兴趣可以去我的项目中查看
      <\/script>
    <\/html>
  `;

  // 创建一个 Blob 对象,将 HTML 字符串封装成一个可下载的文件
  const htmlStrBolo = new Blob([htmlStr], { type: 'text/html' });
  // blob转成url,使用URL.createObjectURL和fileReader都可以
  // 创建一个指向 Blob 对象的 URL
  const htmlStrUrl = URL.createObjectURL(htmlStrBolo);
  
  // 创建一个链接元素
  const aLink = document.createElement('a');
  // 设置链接的 href 属性为刚刚生成的 URL
  aLink.href = htmlStrUrl;
  // 设置下载文件的名称
  aLink.download = '导航下载文件.html';
  // 触发链接的点击事件,开始下载
  aLink.click();
  // 释放之前创建的 URL 对象,释放内存
  URL.revokeObjectURL(htmlStrUrl);

实现功能的项目(Treasure-Navigation

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值