0

我按照教程学习了一些关于 html5 中的 File API
但是,当我遇到这些代码时

fs.root.getFile('log',{create:true},function(fileEntry){
  fileEntry.createWriter(函数(fileWriter){

    fileWriter.onwriteend=函数(e){
        警报(“结束”)

    }
    fileWriter.onerror=函数(e){
       警报(“错误”)
    }

    var bb=新窗口.WebKitBlobBuilder()
    bb.append('你好')

    fileWriter.write(bb.getBlob('text/plain'))
  },错误处理程序)

},错误处理程序)

我总是遇到“错误”,当我设置alert(e.toString())错误事件时,它似乎是[object ProgressEvent]
我的浏览器是 chromium 13,
有人有什么想法吗?非常感谢

4

3 回答 3

0

我在某处读到它仅支持 chrome13+。请检查一下

于 2011-09-06T16:22:34.133 回答
0

您的文件编写器可能由于多种原因而失败。以下代码可能会帮助您确定哪一个:

fileWriter.onerror = function (event) {
  switch (event.target.error.code) {
  case FileError.NOT_FOUND_ERR:
    console.error('NOT_FOUND_ERR');
    break;
  case FileError.SECURITY_ERR:
    console.error('SECURITY_ERR');
    break;
  case FileError.ABORT_ERR:
    console.error('ABORT_ERR');
    break;
  case FileError.NOT_READABLE_ERR:
    console.error('NOT_READABLE_ERR');
    break;
  case FileError.ENCODING_ERR:
    console.error('ENCODING_ERR');
    break;
  case FileError.NO_MODIFICATION_ALLOWED_ERR:
    console.error('NO_MODIFICATION_ALLOWED_ERR');
    break;
  case FileError.INVALID_STATE_ERR:
    console.error('INVALID_STATE_ERR');
    break;
  case FileError.SYNTAX_ERR:
    console.error('SYNTAX_ERR');
    break;
  case FileError.INVALID_MODIFICATION_ERR:
    console.error('INVALID_MODIFICATION_ERR');
    break;
  case FileError.QUOTA_EXCEEDED_ERR:
    console.error('QUOTA_EXCEEDED_ERR');
    break;
  case FileError.TYPE_MISMATCH_ERR:
    console.error('TYPE_MISMATCH_ERR');
    break;
  case FileError.PATH_EXISTS_ERR:
    console.error('PATH_EXISTS_ERR');
    break;
  default:
    console.error('Unknown Error: ' + event.target.error.code);
    break;
  }
};
于 2013-11-03T08:55:00.677 回答
0

在 alert('end') 之后有一个额外的 '})'。请发布完整的测试用例(例如在http://jsfiddle.net/上),它可以更轻松地为您提供帮助。

您是否尝试记录(BTW alert() 是旧的,使用console.log())错误事件的属性列表?它可能有一个e.code?虽然我不认为它应该是一个 ProgressEvent。

于 2011-07-16T23:10:36.943 回答