You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript如何将两个文本输入内容保存到同一个txt文件

问题根因

你的代码有3个核心问题导致功能失效:

  • 元素ID匹配错误:两个textarea的实际ID是textbox1、textbox2,原代码中获取的是不存在的IDtextbox,连第一个输入框的值都拿不对
  • 不需要创建第二个Blob:Blob构造函数原生支持传入多段内容组成的数组,直接把两个输入框的内容按格式拼接后传入单个Blob即可
  • 无效DOM操作:你创建的a标签从未被插入到文档树中,原代码最后一行document.removeChild(anchor)会直接抛出错误,中断函数执行
修复后完整实现

所有逻辑都保留在原saveIndex()函数内,不需要新增额外函数:

function saveIndex() {
  // 获取两个文本框的输入值
  const content1 = document.getElementById('textbox1').value;
  const content2 = document.getElementById('textbox2').value;
  // 拼接文本内容,这里用换行分隔两部分内容,你可以按需调整格式
  const fullContent = `【第一部分内容】\n${content1}\n\n【第二部分内容】\n${content2}`;
  // 生成单个Blob,指定utf-8编码避免中文乱码
  const myBlob = new Blob([fullContent], {
    type: "text/plain;charset=utf-8"
  });

  const url = window.URL.createObjectURL(myBlob);
  const anchor = document.createElement("a");
  anchor.href = url;
  anchor.download = "textfile.txt";

  anchor.click();
  window.URL.revokeObjectURL(url);
  // 删除原代码中无效的removeChild逻辑
}

对应的HTML部分可以修正无效属性(label的for值、button上无效的for属性):

<body>
  <label for="textbox1">Textbox1</label>
  <textarea id="textbox1"></textarea>

  <label for="textbox2">Textbox2</label>
  <textarea id="textbox2"></textarea>

  <button type="button" id="bt" value="Exporter" onclick="saveIndex()"> EXPORT </button>
</body>
可选调整

如果你不需要给两部分内容加标识,也可以直接把多段内容传入Blob构造函数,不需要提前拼接成字符串:

// 两个内容之间用两个换行分隔,避免内容粘连
const myBlob = new Blob([content1, '\n\n', content2], {
  type: "text/plain;charset=utf-8"
});

内容的提问来源于stack exchange,提问作者giotto1

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.11 16:16:22