クライアント側にデータを保存できるように、HTML5 FileSystem を使用した簡単なプロジェクトを試してみました。
私の最初の試行は成功しました。最初は JavaScript ですべてを開始し、onclick
oronkeypress
イベントでファイルを操作 (ファイルを読み取ってテキストエリアまたは P に追加し、ファイルを書き込み/変更) するためです。
しかし、イベント外で同時に行うと、ファイルシステムの変数がnull/undefinedになり、処理を続行できません。
正常に動作しているコードは次のとおりです。
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 となり、これは変数が FileSystem であることを意味します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);
返されたalert(fs)
null。これに対してできる解決策はありますか?これには、どんな説明でも役立ちます。私の最後の手段は、ボタンを追加して、クリック後にfs
間違いなくファイルシステムになるようにすることですが、私はその方法を避けようとしています。