我按照tutorial了解html5中的文件API 但是,当我遇到这些代码时
fs.root.getFile('log',{create:true},function(fileEntry){ fileEntry.createWriter(function(fileWriter){ fileWriter.onwriteend=function(e){ alert("end") } fileWriter.onerror=function(e){ alert("error") } var bb=new window.WebKitBlobBuilder() bb.append('hello') fileWriter.write(bb.getBlob('text/plain')) },errorHandler) },errorHandler)
我总是遇到“错误”
当我在错误事件中设置alert(e.toString())
时,它似乎是[object ProgressEvent]
,
我的浏览器是铬13,有人有想法吗?非常感谢
答案 0 :(得分:0)
警告后('结束'),你有一个额外的'})'。请发布可以查看的完整测试用例(例如在http://jsfiddle.net/上),这样可以更方便地为您提供帮助。
您是否尝试记录(BTW alert()已旧,使用console.log()
)错误事件的属性列表?它可能有e.code
吗?虽然我认为它不会成为ProgressEvent。
答案 1 :(得分:0)
我在某处读到它仅支持chrome13 +。请检查
答案 2 :(得分: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;
}
};