JS 实现:一键复制 div 内容到 TXT 文件,自动删 HTML 标签且保留换行!
以下是一个使用 JavaScript 实现复制 `div` 内的内容到 TXT 文件,同时自动删除 HTML 标签并保留换行的代码示例: ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> </head> <body> <!-- 示例 div --> <div id="myDiv"> <p>这是第一行文本。</p> <p>这是第二行文本。</p> </div> <!-- 触发下载的按钮 --> <button id="downloadButton">下载为 TXT</button> <script> // 获取 div 元素和按钮元素 const myDiv = document.getElementById('myDiv'); const downloadButton = document.getElementById('downloadButton'); // 为按钮添加点击事件监听器 downloadButton.addEventListener('click', function () { // 获取 div 内的 HTML 内容 let htmlContent = myDiv.innerHTML; // 移除 HTML 标签,保留换行符 let textContent = htmlContent.replace(/<[^>]*>/g, '').replace(/<br\s*\/?>/gi, '\n'); // 创建一个 Blob 对象,用于存储文本内容 const blob = new Blob([textContent], { type: 'text/plain;charset=utf-8' }); // 创建一个 URL 对象,用于生成下载链接 const url = URL.createObjectURL(blob); // 创建一个 a 元素,用于触发下载 const a = document.createElement('a'); a.href = url; a.download = 'content.txt'; // 模拟点击 a 元素,触发下载 a.click(); // 释放 URL 对象,避免内存泄漏 URL.revokeObjectURL(url); }); </script> </body> </html> ``` 代码解释: 1. 获取元素:通过 `document.getElementById` 方法获取 `div` 元素和按钮元素。 2. 添加事件监听器:为按钮添加 `click` 事件监听器,当按钮被点击时执行相应的操作。 3. 处理 HTML 内容:使用正则表达式 `/<[^>]*>/g` 移除所有 HTML 标签,使用 `replace(/<br\s*\/?>/gi, '\n')` 保留换行符。 4. 创建 Blob 对象:使用 `Blob` 构造函数创建一个包含文本内容的 Blob 对象。 5. 生成下载链接:使用 `URL.createObjectURL` 方法生成一个临时的下载链接。 6. 触发下载:创建一个 `a` 元素,设置其 `href` 和 `download` 属性,模拟点击该元素触发下载。 7. 释放 URL 对象:使用 `URL.revokeObjectURL` 方法释放临时的下载链接,避免内存泄漏。 ######[AI问答 | 654点数解答 | 2025-09-05 17:17:24]
- C++类实现一元二次方程多种解情况判断及求解,附特殊情况处理与精度控制(字节豆包 | 481点数解答 | 2025-03-07 12:49:26)200
- 揭秘 Python:网页表单自动化定位与等待操作代码解析(字节豆包 | 361点数解答 | 2024-11-11 21:56:42)330
- 批处理文件:依据参数表.xlsx精准修改文件.txt中p、t、s值(GPT | 811点数解答 | 2024-12-05 12:58:37)394
- 用批处理和Python实现“参数表.xlsx”与“文件.txt”数据匹配及修改(讯飞星火 | 531点数解答 | 2024-12-05 13:20:42)375
- 批处理文件:依据参数表.xlsx精准修改文件.txt特定参数值(阿里通义 | 495点数解答 | 2024-12-05 13:22:26)355
- Layui框架微信群组信息管理HTML模板:代码分析、优化建议与注意要点(DeepSeek | 644点数解答 | 2025-03-11 15:42:55)247
- 幸运大转盘代码全解析:从结构搭建到功能优化与体验升级(字节豆包 | 724点数解答 | 2025-06-23 17:31:53)208
- 测3:以读、二进制方式打开C盘temp文件夹下abc.txt文件的代码选哪个?(GPT | 15点数解答 | 2024-06-06 13:53:37)405
- App.vue 中头部代码结构与样式剖析(字节豆包 | 31点数解答 | 2025-05-14 09:58:18)258
- HTML+jQuery 实现列表元素悬停动画效果:代码详解与注意事项(字节豆包 | 475点数解答 | 2024-12-19 14:58:05)376
- HTML+jQuery:打造动态导航栏动画效果及注意事项(字节豆包 | 495点数解答 | 2024-12-19 14:58:06)322
- HTML+jQuery:打造带动态交互效果的商品展示页面(讯飞星火 | 497点数解答 | 2024-12-19 14:58:18)329