我有这个网页用于将文本转换为 chordpro。今天在文本区修改内容;强迫我打开一个文本编辑器,然后将文本区域内容粘贴到那里,但我宁愿打开一个保存文件对话框,以便将内容直接保存到磁盘。我试图弄清楚如何使用 HTML5 Filesaver,我想我快到了,但我不知道如何提供文件系统(fs)?Chrome 一直告诉我 fs 未定义(因为我没有提供它)。
我是否以正确的方式接近这一点,除了文件系统之外,我还需要提供什么才能使其正常工作?
这就是我已经走了多远。HTML 输入为:
<button type="button" onclick=saveTextArea();>Convert</button>
Javascript是:
function saveTextArea(fs) {
"use strict";
convertToChordpro(); // Converts text area value to chordpro format
var textArea = document.getElementById('textArea');
var artist = document.getElementById('artist').value;
var title = document.getElementById('title').value;
var fileName = (artist && title) ? artist + "-" + title + ".txt" : "artist-title.txt";
fs.root.getFile(fileName, {create: true}, function(fileEntry) {
fileEntry.createWriter(function(fileWriter) {
fileWriter.onwrite = function(e) {
console.log('Write completed.');
};
fileWriter.onerror = function(e) {
console.log('Write failed: ' + e.toString());
};
var bb = new BlobBuilder();
bb.append(textArea.value);
fileWriter.write(bb.getBlob('text/plain'));
}, onError);
}, onError);
}
function onError() {}
window.requestFileSystem = window.requestFileSystem || window.webkitRequestFileSystem;
window.requestFileSystem(TEMPORARY, 1024*1024, saveTextArea, onError);