Javascript - 如何使用HTA保存txt文件

时间:2016-03-21 08:20:32

标签: javascript hta

我正在创建一个位于共享驱动器上的HTA应用程序。我有一个部分,其中应用程序生成报告txt文件,并应允许用户保存它。

我希望用户能够选择保存位置和调用内容,就像保存文件一样,但我无法弄清楚如何完成它。到目前为止,我提出的最佳方法是保存文件,提供下载,以便他们可以选择适合他们的位置(和名称),然后删除自动保存的版本。这听起来很丑陋,比它应该更笨重。还有更好的方法吗?

编辑:评论者要求提供我用于下载的代码:

我在html中有一个包含报告文本的textarea -

<textarea id="reportText" class="col-md-12 form-control"></textarea>

然后是一个保存文件按钮:

<a class="btn btn-success" id="saveReportBtn">Save File</a>

生成报告时,代码会将href和下载属性添加到“保存文件”按钮:

document.getElementById('saveReportBtn').href = "data:text/plain, TEST";
document.getElementById('saveReportBtn').setAttributeNS(null, "download", "");

然而,当我点击按钮时没有任何反应。我也尝试过下载一个推荐的文件名,(null,“download”,“myFile.txt”)。

1 个答案:

答案 0 :(得分:0)

您可以使用a元素download属性,href属性设置为文件的objectURLdata URI。当用户单击Save File元素时,应显示a对话框,其中用户可以命名文件并选择在用户文件系统中保存文件的位置

&#13;
&#13;
var a = document.getElementById("saveReportBtn");
var textarea = document.getElementById("reportText");
  
a.addEventListener("click", function() {
  this.href = "data:application/octet-stream," + encodeURIComponent(textarea.value);
  // this.download = "";
});
&#13;
<textarea id="reportText" class="col-md-12 form-control"></textarea>
<a href="" class="btn btn-success" id="saveReportBtn">Save File</a>
&#13;
&#13;
&#13;

jsfiddle使用download属性https://jsfiddle.net/h51dhdgn/;见download