1
我尝试使用HTML5文件系统, 这样我就可以存储在客户端的数据,HTML5文件系统初始化
我的第一次试验是成功的,因为我在一开始使用JavaScript, 启动一切简单的项目,在onclick或onkeypress事件中操作文件(读取文件并将其附加到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);
}
警报(FS)导致DOM文件系统,这意味着,FS变量是文件系统。
但是,当我这样做:
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);
警报(FS)返回null, 有没有可以做这个的任何解决方案?任何的解释是有用的这一点, 我不得已将添加一个按钮,使后点击FS肯定会是一个文件系统,但我会尽量避免这种方法
这是有意义的,为什么fs是空,是有办法同步做到这一点?因为把我所有的代码放在回调里面并不是我想要做的事 –
我不知道它的同步功能。你可以看看'promises' - 你必须得到一个外部库。或者你可以做一些丑陋的事情,比如'If fs == null然后再次尝试10ms'(伪代码) – paulslater19
或者甚至在你知道它被执行之前就不启动你的代码(例如等待1s) – paulslater19