【问题标题】:Accessing HTML <textarea> data and store them as file [closed]访问 HTML <textarea> 数据并将它们存储为文件 [关闭]
【发布时间】:2016-01-15 17:15:55
【问题描述】:

我有以下任务:
我需要从多个&lt;textarea&gt; 标签中收集信息,对其进行一些格式化,然后最好以 CSV 格式保存在硬盘上。

重要提示编号。 1:该数据源HTML文档是我本地硬盘上的一个文件,它没有托管在任何服务器上(该文件是从某些数据库管理工具导出的产品)。

重要提示编号。 2:唯一可用的脚本语言引擎是python

我已经在准备一些 python 脚本,将 CSS 样式表链接和 JavaScript 链接嵌入到这个 HTML 文件中以供使用,以及一些用于显示目的的 jQuery 库函数。

现在,在特定操作(即“保存”按钮单击)上,我需要:

  • 搜索填充的&lt;textarea&gt; 标签(jQuery 作业?)
  • 格式化它们并最好粘在单个变量中(jQuery 也是如此)
  • 显示“另存为”对话框
  • 在硬盘上保存文件

据我所知,机器文件系统上不允许JavaScript操作文件,所以写文件应该是一些服务器端脚本,对吗?

这个保存脚本应该由“另存为”按钮触发吗? (实现为提交表单按钮)?如果是,我可以先运行一些 JavaScript 函数(收集 textarea 数据并格式化它们),然后将其保存在文件中吗?

如何将这种数据传递给这个服务器端脚本?

感谢您的各种帮助和建议。

编辑: 我看到有些用户已经用下载属性指向&lt;a&gt;标签,但是还有一个额外的问题:我们必须假设 IE 作为网络浏览器,默认情况下不支持下载属性。

【问题讨论】:

  • 您只需要 JS 和 HTML 即可。使用&lt;a download="something.csv"&gt;Save as…&lt;/a&gt; 并将href 设置为Blob URL,其中Blob 包含用JavaScript 格式化的CSV 数据。
  • 你可以用这样的jsfiddle

标签: javascript jquery python html


【解决方案1】:

由于某种原因,正确答案被发布为评论而不是答案。代码由 gabrielperales 提供:

JavaScript:

$(function(){
  function toCSV(text){
    var str= 'data:application/octet-stream;charset=utf-16le;base64,';
    str += btoa(text);
    return str;
  }

  $('#editor').on('change', function(){
    $('#download').attr('href', toCSV($(this).val()));
  });
});

HTML:

<textarea id="editor"></textarea>
<br/>
<a id="download" href="" download="file.csv">Download</a>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-12
    • 2016-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-27
    • 1970-01-01
    • 2013-05-01
    相关资源
    最近更新 更多