我尝试了一个使用 HTML5 FileSystem 的简单项目,因此我可以在客户端存储数据。
onclick
我的第一次尝试是成功的,因为我在开始时使用 JavaScript 启动所有内容,并在oronkeypress
事件中操作文件(读取文件并将其附加到 textarea 或 P;并写入/修改文件) 。
但是,当我在事件之外同时执行此操作时,文件系统的变量为空/未定义,我无法继续该过程。
这是运行良好的代码:
function initFS() {
window.webkitStorageInfo.requestQuota(PERSISTENT,5*1024*1024,
function(grantedBytes) {
window.requestFileSystem(window.TEMPORARY, grantedBytes, function (filesystem)
{
fs = filesystem;
}, errorHandler);
});
}
document.body.onclick=function()
{
alert(fs);
fs.root.getFile('log.txt', {create: true, exclusive: true}, function(fileEntry) {
}, errorHandler);
}
结果alert(fs)
是 DOM FileSystem,这意味着fs
变量是 FileSystem。
但是当我这样做时:
function initFS()
{
window.webkitStorageInfo.requestQuota(PERSISTENT,5*1024*1024,function(grantedBytes){
window.requestFileSystem(window.TEMPORARY, grantedBytes, function(filesystem) {
fs = filesystem;
}, errorHandler);
})
}
if (window.requestFileSystem) {
initFS();
}
alert(fs);
alert(fs)
返回的空值。有什么解决方案可以解决这个问题吗?任何解释都会对此有用。我最后的手段是添加一个按钮,这样点击后fs
肯定是一个文件系统,但我尽量避免使用这种方法。