Хороший улов. В коде, который я написал, я всегда хотел заменить onwriteend, чтобы установить следующий код. Я переписывал исходный код для использования асинхронного усечения, но я не думал о замене / обнулении функции onwriteend.

периментирую с HTML5 File API, и мне нужно использовать метод, о котором я не знаю достаточно (просто потому, что он практически нигде не документирован).

Я говорю о методе FileWriter truncate (), и я знаю, что он делает то, что мне нужно. По сути, вместо того, чтобы добавлять текст в некоторые данные файла или использовать seek () для перезаписи определенной части, я хочу перезаписать все данные чем-то другим (например, из «somedata» в «»).

Вот фрагмент настройки FileWriter из HTML5Rocks с добавлением truncate ().

function onInitFs(fs) {

  fs.root.getFile('log.txt', {create: false}, function(fileEntry) {

    // Create a FileWriter object for our FileEntry (log.txt).
    fileEntry.createWriter(function(fileWriter) {

      fileWriter.seek(fileWriter.length); // Start write position at EOF.
      fileWriter.truncate(1);

      // Create a new Blob and write it to log.txt.
      var bb = new BlobBuilder(); // Note: window.WebKitBlobBuilder in Chrome 12.
      bb.append('Hello World');
      fileWriter.write(bb.getBlob('text/plain'));

    }, errorHandler);

  }, errorHandler);

}

window.requestFileSystem(window.PERSISTENT, 1024*1024, onInitFs, errorHandler);

Когда дело доходит до вызова writer.truncate (), вызов writer.write () вызывает ошибку исключения файла. Я считаю, что это потому, что ReadyState установлен в ПИСЬМО. К сожалению, я не знаю, как обойти это.

Я уже пытался смотреть черезHTML5Rocks раздел об этом, но он ничего не говорит мне о методе truncate () (хотя я знаю, что он существует из того, что говорит мне консоль Webkit JS).

Короче говоря, как я могу правильно использовать метод truncate () без ошибки?

Ответы на вопрос(2)

Ваш ответ на вопрос