2015-08-01 2 views
0

Я пытаюсь получить данные (включая изображения/ссылки/etc), введенные в текстовый редактор jquery, сохраненный с использованием файловой системы chrome. Я могу сохранить как один тип файла (скажем, text/plain), но не могу понять, как сохранить изображения и текст в файловой системе одновременно. Я по сути хочу, чтобы мой блог «post» был сохранен в локальной файловой системе с песочницей chrome для последующего извлечения вместо сервера или публикации на веб-странице ... любых идей?Сохранение сообщения блога в chrome filesystem blob

ответ

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); 
    }); 
    }); 
}); 

 Смежные вопросы

  • Нет связанных вопросов^_^