提示用户将输出下载为txt文件

时间:2016-10-23 00:51:30

标签: javascript

我正在寻找帮助w /脚本,允许用户通过点击我的"导出"来自文本区域下载输出(通过提示他们保存它)。按钮。

<textarea id="output" class="form-control text-box noresize" rows="4" placeholder="OUTPUT">
</textarea>

最近我得到了答案如下,但很明显它创建了一个文件,而不是使用我的输出:

var a = window.document.createElement('a');
a.href = window.URL.createObjectURL(new Blob(['Test,Text'], {type: 'text/csv'}));
a.download = 'test.csv';

// Append anchor to body.
document.body.appendChild(a)
a.click();

// Remove anchor from body
document.body.removeChild(a)

任何帮助都会非常赞赏。

2 个答案:

答案 0 :(得分:2)

使用您的方法,只需将textarea的值传递给createObjectURL函数。

<textarea id="output" class="form-control text-box noresize" rows="4" placeholder="This text will be downloaded as a file.">
</textarea>

<br>
<button id="download">Download</button>

<script>
document.getElementById('download').addEventListener("click", download);

function download(){
    var text = document.getElementById('output');
    var a = window.document.createElement('a');
    a.href = window.URL.createObjectURL(new Blob([text.value], {type: 'text/plain'}));
    a.download = 'test.txt';

    document.body.appendChild(a)
    a.click();
    document.body.removeChild(a)
}
</script>

答案 1 :(得分:1)

试试这个:

&#13;
&#13;
var txt  = document.getElementById('content').value;

document.getElementById('link').onclick = function(){
    this.href = 'data:text/plain;charset=utf-8,' + encodeURIComponent(txt);
};

document.getElementById('content').onchange = function(){
    txt = document.getElementById('content').value;
};
&#13;
<body>

    <div>
	<textarea id="content">Hello World</textarea>
    </div>

    <a href="" id="link" download="content.txt">Download</a>
  
</body>
&#13;
&#13;
&#13;