3

Chrome でファイル システム API を使用してファイルを作成しようとしていました。最初に、次のように PERSISTENT ストレージを試しました

window.requestFileSystem = window.requestFileSystem || window.webkitRequestFileSystem;
webkitStorageInfo.requestQuota(webkitStorageInfo.PERSISTENT, 1024*1024, 
    function(grantedBytes) {
        window.requestFileSystem(webkitStorageInfo.PERSISTENT, grantedBytes, onInitFs, 
        errorHandler);
    }, 
    errorHandler);

最初は問題なく動作していました。しかし、同じコードを試してみると、次のエラーが表示されます

NOT_SUPPORTED_ERR: DOM Exception 9

次に、次のようにTEMPORARYファイルストレージを試しました

window.requestFileSystem(TEMPORARY, 1024*1024, onInitFs, errorHandler);

これにより、セキュリティ エラーを意味するコード 2 の FileError が返されます。誰でもこれらの問題について私を助けてもらえますか?

4

2 に答える 2

2

ローカルコンピューターに保存されているページにコードを配置してChromeで実行しようとしていますか?旗を追加しましたか

--allow-file-access-from-files

Chromeショートカットで?私はたまたまあなたと同じエラーに遭遇しました、そして突然私は私のクロムを実行するためにこのフラグを追加するのを忘れたことに気づきました。

于 2012-07-02T16:28:37.590 に答える
0

エラーを再現できません。コンテンツ スクリプトでファイルシステム API を使用する単純な拡張機能を作成しましたが、問題なく動作します。コンソールにエラーが表示されますか? そうでない場合は、このコードを構築して、さらにエラーが発生するかどうかを確認してください。

マニフェスト.json:

{
  "name": "Testing FS",
  "manifest_version":2,
  "version": "1.0",
  "content_scripts": [
    {
      "matches":["*://*.google.com/*"],
      "js":["script.js"]
    }
  ]
}

script.js:

webkitStorageInfo.requestQuota(webkitStorageInfo.TEMPORARY, 1024*1024, function(grantedBytes) {
    console.log("bytes granted: ", grantedBytes);
    window.webkitRequestFileSystem(webkitStorageInfo.TEMPORARY, grantedBytes, onInitFs, errorHandler)
}, errorHandler);

function errorHandler(e) {
  console.log("FS error", e);
}

function onInitFs(fs) {
  fs.root.getFile('log.txt', {create: true}, function(fileEntry) {
      console.log(fileEntry);
  }, errorHandler);
}
于 2012-05-09T14:06:15.707 に答える