迅雷下载触发
刀刀
1/8/2025
0 字
0 分钟
实现
现在有一份超链接代码如下:
html
<body>
<a href="https://xxxxxxxxxxxx">点我下载</a>
</body>
点击即可下载。前端想要实现迅雷下载,可按照以下思路实现:
- 为超链接
a
标签添加自定义标识data-thunder
,表示该超链接需要迅雷下载 - 获取所有需要迅雷下载的超链接,
for...of...
循环 - 通过
btoa
把链接转base64
- 转迅雷下载的
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()
方法可以将一个二进制字符串(例如,将字符串中的每一个字节都视为一个二进制数据字节)编码为 Base64 编码的 ASCII 字符串。
你可以使用这个方法来对可能遇到通信问题的数据进行编码,然后使用 atob()
方法来对数据进行解码。例如,你可以对 ASCII 中的控制字符(值为 0 到 31 的字符)进行编码。
- 语法:js
btoa(stringToEncode)
- 参数:
stringToEncode
一个需要编码的二进制字符串。 - 返回值: 一个包含
stringToEncode
的 Base64 表示的 ASCII 字符串。