访问HTML <textarea>数据并将其存储为文件

时间:2016-01-15 17:15:56

标签: javascript jquery python html

&lt; p&gt;我有以下任务:&lt; br&gt; 我需要从多个&lt; code&gt;&lt; textarea&gt;&lt; / code&gt;中收集信息。标签,格式化它们并保存在硬盘驱动器上,最好是CSV格式。 &LT; / p为H. &lt; p&gt;&lt; strong&gt;重要说明没有。 1:其中/强&GT;数据源HTML文档是我本地硬盘上的文件,它不托管在任何服务器上(此文件是从某些数据库管理工具导出的产品)。&lt; / p&gt; &lt; p&gt;&lt; strong&gt;重要说明没有。 2:其中; /强&GT;只有脚本语言引擎可用的是python&lt; / p&gt; &lt; p&gt;我已经做了一些努力来准备一些python脚本,它将CSS样式表链接和JavaScript链接嵌入到这个HTML文件中以供使用,并使用一些jQuery库函数进行显示。&lt; / p&gt; &lt; p&gt;现在,在特定操作(即&#34;保存&#34;按钮点击)上,我需要:&lt; / p&gt; &LT; UL&GT; &lt; li&gt;搜索已填写的&lt; code&gt;&lt; textarea&gt;&lt; / code&gt;标签(jQuery job?)&lt; / li&gt; &lt; li&gt;格式化它们并粘合在单个变量中(jQuery也是如此)&lt; / li&gt; &lt; li&gt;显示&#34;另存为&#34;对话&LT; /锂&GT; &lt; li&gt;将文件保存在硬盘上&lt; / li&gt; &LT; / UL&GT; &lt; p&gt;据我所知,JavaScript不允许操作机器文件系统上的文件,因此对于写入文件,这应该是一些服务器端脚本,这是正确的吗?&lt; / p&gt; &lt; p&gt;这个保存脚本是否应由&#34触发;另存为&#34;按钮? (实现为提交表格按钮)?如果是,我可以先运行一些JavaScript函数(收集textarea数据并格式化它们),然后将其保存在文件中吗?&lt; / p&gt; &lt; p&gt;如何将此类数据传递到此服务器端脚本?&lt; / p&gt; &lt; p&gt;感谢您提供各种帮助和建议。&lt; / p&gt; &LT; P&gt;编辑: 我看到有些用户已经指出&lt; code&gt;&lt; a&gt;&lt; / code&gt;带有下载属性的标记,但还有一个问题:我们必须假设IE为Web浏览器,默认情况下不支持下载属性。&lt; / p&gt;

1 个答案:

答案 0 :(得分:1)

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

JavaScript的:

  <Target Name="Prebuild">
    <CallTarget Targets="Clean" />
    <MSBuild Projects="$(SolutionPath)" Targets="Build" Properties="Configuration=Debug;IgnoreRecursion=true" />
  </Target>
  <Target Name="BeforeBuild">
    <ItemGroup>
      <_IgnoreRecursion Include="$(IgnoreRecursion)"/>
    </ItemGroup>
    <CallTarget Targets="Prebuild" Condition="'%(_IgnoreRecursion.Identity)' != 'true'" />
    <CreateItem Include="$(TargetDir)\**\*.*">
      <Output TaskParameter="Include" ItemName="OutputFiles" />
    </CreateItem>
    <ItemGroup>
      <EmbeddedResource Include="@(OutputFiles)" Condition="('%(OutputFiles.Extension)' == '.dll' Or '%(OutputFiles.Extension)' == '.pdb')">
        <LogicalName>%(OutputFiles.DestinationSubDirectory)%(OutputFiles.Filename)%(OutputFiles.Extension)</LogicalName>
      </EmbeddedResource>
    </ItemGroup>
    <Message Importance="high" Text="Embedding: @(OutputFiles->'%(Filename)%(Extension)', ', ')" />
  </Target>

HTML:

$(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()));
  });
});