Skip to content

迅雷下载触发

作者:Yuan Tang
更新于:5 个月前
字数统计:394 字
阅读时长:1 分钟

实现

现在有一份超链接代码如下:

html
<body>
  <a href="https://xxxxxxxxxxxx">点我下载</a>
</body>

点击即可下载。前端想要实现迅雷下载,可按照以下思路实现:

  1. 为超链接 a 标签添加自定义标识 data-thunder ,表示该超链接需要迅雷下载
  2. 获取所有需要迅雷下载的超链接,for...of... 循环
  3. 通过 btoa 把链接转 base64
  4. 转迅雷下载的 thunder 协议

代码如下:

html
<body>
  <a href="https://xxxxxxxxxxxx">点我下载</a>
  
  <script>
  	const links = document.querySelectorAll('a[data-thunder]')
    for(const link of links) {
      const newHref = btoa(`AA${link.href}ZZ`)
      // 转迅雷下载的 `thunder` 协议
      link.href = `thunder://${newHref}`
    }
  </script>
</body>

注意 示例代码中使用了 JavaScript 内置的 btoa() 函数来进行 Base64 编码。如果你需要在 Node.js 环境下运行这个函数,你需要使用 Buffer.from() 函数来进行 Base64 编码。

拓展:btoa()

btoa() 方法可以将一个二进制字符串(例如,将字符串中的每一个字节都视为一个二进制数据字节)编码为

编码的 ASCII 字符串。

你可以使用这个方法来对可能遇到通信问题的数据进行编码,然后使用

方法来对数据进行解码。例如,你可以对 ASCII 中的控制字符(值为 0 到 31 的字符)进行编码。

  • 语法:
    btoa(stringToEncode)
  • 参数: stringToEncode 一个需要编码的二进制字符串
  • 返回值: 一个包含 stringToEncode 的 Base64 表示的 ASCII 字符串。

Contributors

Yuan Tang