js 点击按钮 把文本转成文件并下载下来

你可以使用 JavaScript 创建一个 Blob 文件,并通过动态创建 a 标签来触发下载。下面是一个完整的例子:

HTML 部分

html 复制代码
<button id="downloadBtn">下载文本</button>

JavaScript 部分

javascript 复制代码
document.getElementById('downloadBtn').addEventListener('click', function() {
    // 这里的文本你可以根据需要修改
    const text = "这是要保存的文本内容\n换行也可以哦~";

    // 创建一个 Blob 对象
    const blob = new Blob([text], {type: "text/plain;charset=utf-8"});

    // 创建一个下载链接
    const url = URL.createObjectURL(blob);
    const a = document.createElement('a');
    a.href = url;
    a.download = "保存的文件.txt"; // 设置下载的默认文件名
    document.body.appendChild(a);
    a.click();

    // 移除a标签并释放内存
    document.body.removeChild(a);
    URL.revokeObjectURL(url);
});

说明
  • Blob 可以用来把字符串或二进制数据转成文件对象。
  • 创建一个隐藏的 <a> 标签,通过 a.download 属性指定文件名,然后用 JS 模拟点击。
  • 操作完成后及时释放内存和移除标签。

拓展:支持任意文本输入

比如配合 <textarea> 实现任意输入下载:

html 复制代码
<textarea id="content"></textarea>
<button id="downloadBtn">下载文本</button>
<script>
document.getElementById('downloadBtn').addEventListener('click', function() {
    const text = document.getElementById('content').value;
    const blob = new Blob([text], {type: "text/plain;charset=utf-8"});
    const url = URL.createObjectURL(blob);
    const a = document.createElement('a');
    a.href = url;
    a.download = "myfile.txt";
    document.body.appendChild(a);
    a.click();
    document.body.removeChild(a);
    URL.revokeObjectURL(url);
});
</script>

如有其他需求可详细说明!

相关推荐
冻柠檬飞冰走茶2 小时前
字母移动游戏题解:贪心求最长可保留连续子串(附 C 实现)
c语言·开发语言·数据结构·算法·动态规划
FRing032 小时前
vue2干货总结7(自定义指令、插槽、单页应用程序、路由的使用(VueRouter))
开发语言·前端·vue.js·vue2
雪落漂泊2 小时前
C++算法 二分查找篇(上)
开发语言·c++·算法
波力海苔夹心脆6753 小时前
C# WPF 资源字典详解:ResourceDictionary、MergedDictionaries 与自定义控件案例
开发语言·c#·wpf·入门教程·resource·资源字典
不会算法的笨小孩3 小时前
异常的使用以及会出现的问题
开发语言·c++·c++11·异常
Penge6664 小时前
《Go 后端开发者学 TypeScript:typescript 类型断言》
javascript
Penge6664 小时前
《Go 后端开发者学 TypeScript:Symbol》
javascript
Hhy_11076 小时前
《C++深度解构06》手撕 string —— 从底层内存管理到深浅拷贝彻底吃透
c语言·开发语言·c++·学习·visual studio
starzy19906 小时前
深入理解Scala函数定义:从方法到函数的类型跨越
开发语言·scala
starzy19906 小时前
深入理解Scala递归函数:从栈溢出到尾调用优化
开发语言·scala