我正在尝试将数据(包括图片/链接/等)输入到使用chrome文件系统保存的jquery文本编辑器中。我可以保存为单个文件类型(比如text / plain),但无法弄清楚如何同时将图像和文本保存到文件系统。我基本上希望我的博客“发布”保存到本地沙盒chrome文件系统,以便以后检索而不是服务器或发布到网页......任何想法?
答案 0 :(得分:0)
由于您尝试保存文本以及图像,图片和链接,因此您应将博客文章另存为html文件。假设你的“jquery文本编辑器”有一个类.jquery-textEditor
,一个类为.save
的保存按钮,以及一个类为.open
的打开按钮,这就是你应该打开的方式/保存“博客文章”。
//save
var dbName = 'text-vanillajs';
var savedFileEntry, fileEntry;
function getText(callback) {
chrome.storage.local.get(dbName, function(storedData) {
var text = $('.jquery-textEditor').html();
callback(text);
}.bind(this));
}
function exportToFileEntry(fileEntry) {
savedFileEntry = fileEntry;
getText(function(contents) {
fileEntry.createWriter(function(fileWriter) {
var truncated = false;
var blob = new Blob([contents]);
fileWriter.onwriteend = function(e) {
if (!truncated) {
truncated = true;
this.truncate(blob.size);
return;
}
};
fileWriter.write(blob);
});
});
}
function ExportToDisk() {
chrome.fileSystem.chooseEntry({
type: 'saveFile',
suggestedName: 'untitled.html',
accepts: [{
description: 'HTML File',
extensions: ['html']
}],
acceptsAllTypes: true
}, exportToFileEntry);
}
$('.save').click(function() {
if (savedFileEntry) {
exportToFileEntry(savedFileEntry);
} else {
ExportToDisk();
}
});
//open
$('.open').click(function(){
chrome.fileSystem.chooseEntry({
type: 'openFile',
accepts: [{
extensions: ['html']
}]
}, function(fileEntry) {
if (!fileEntry) {
return;
}
fileEntry.file(function(file) {
var reader = new FileReader();
reader.onloadend = function(e) {
var result = e.target.result;
$('.jquery-textEditor').html(result);
};
reader.readAsText(file);
});
});
});