我正在创建一个位于共享驱动器上的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”)。
答案 0 :(得分:0)
您可以使用a
元素download
属性,href
属性设置为文件的objectURL
或data URI
。当用户单击Save File
元素时,应显示a
对话框,其中用户可以命名文件并选择在用户文件系统中保存文件的位置
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;
jsfiddle使用download
属性https://jsfiddle.net/h51dhdgn/;见download