网站首页 > 基础教程 正文
看到不少人想要实现将给定的文本内容以指定的文件名下载到用户的本地电脑上,今天我给大家分享一下我的实现代码:
function saveShareContent(content, fileName) {
// 创建一个隐藏的a元素
let downLink = document.createElement('a');
downLink.style.display = 'none'; // 隐藏链接
downLink.download = fileName;
// 将字符内容转换为blob地址
let blob = new Blob([content]);
downLink.href = URL.createObjectURL(blob);
// 将链接插入到页面并触发点击事件
document.body.appendChild(downLink);
downLink.click();
// 清理资源
URL.revokeObjectURL(blob); // 释放创建的blob URL
document.body.removeChild(downLink);
}
// 使用函数
saveShareContent("你能看到吗?", "12345.txt");
实际效果自己看我的演示图吧。
弹出保存:
保存后打开:
简单给大家解释一下实现步骤吧:
创建一个隐藏的<a>元素,并设置其download属性为传入的文件名,这样点击链接时会触发浏览器的下载行为。
将传递进来的文本内容(字符串形式)转换成Blob对象,Blob是二进制数据的容器,可以表示任何类型的数据。
使用URL.createObjectURL(blob)方法创建一个指向该Blob对象的URL,并将其赋值给a标签的href属性。
将创建好的隐藏a元素添加到文档的body中。
触发click事件来模拟用户点击下载链接,从而开始文件下载。
下载完成后,清理资源:首先使用URL.revokeObjectURL(blob)释放之前创建的Blob URL,然后从DOM中移除隐藏的a元素。
这段代码会将文本"你能看到吗?"保存为名为"12345.txt"的文本文件并提示用户下载。
希望对有将给定的文本内容以指定的文件名下载到用户的本地电脑需要的朋友有帮助。你可以稍微修改下实现将网页中的某些需要的代码下载到本地的,看你发挥啦!
猜你喜欢
- 2024-10-12 纯JS手写轮播图(代码逻辑清晰,通俗易懂)
- 2024-10-12 谷歌浏览器任意文件访问漏洞(CVE-2023-4357)复现
- 2024-10-12 Dom节点优化方案 dom节点树例题
- 2024-10-12 自动化测试工程师的学习方法和逻辑
- 2024-10-12 Web Components 系列(八)——自定义组件的样式设置
- 2024-10-12 JavaScript,自制弹窗(练习) js弹出自定义窗口
- 2024-10-12 掌握 onmouseover 事件:打造动态 HTML 体验
- 2024-10-12 Vue 自定义指令详解-按钮级权限示例(干货)
- 2024-10-12 windows本地程序调用与selenium的简单应用
- 2024-10-12 中高级渗透测试员都必须掌握的Web安全测试知识库,速收藏!
- 最近发表
- 标签列表
-
- gitpush (61)
- pythonif (68)
- location.href (57)
- tail-f (57)
- pythonifelse (59)
- deletesql (62)
- c++模板 (62)
- css3动画 (57)
- c#event (59)
- linuxgzip (68)
- 字符串连接 (73)
- nginx配置文件详解 (61)
- html标签 (69)
- c++初始化列表 (64)
- exec命令 (59)
- canvasfilltext (58)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- node教程 (59)
- console.table (62)
- c++time_t (58)
- phpcookie (58)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)