0

ここでの問題は、私が書いているものがpopup.jsそこwindow.webkitRequestFileSystemから読み取れるが、私は から読み取れないことcontent.jsです。

PS: コードは両方のファイルで同じです

マニフェスト.json

 {
  "manifest_version": 2,

  "browser_action": {
    "default_popup": "action.html"
  },
  "content_scripts": [
    {
      "js": ["content.js"]
    }
  ],
  "background": {
    "scripts": ["background.js"]
  },
  "permissions": [
    "unlimitedStorage",
  ]
}

action.html

// Here is the popup.js file included

popup.js

window.webkitRequestFileSystem(window.PERSISTENT, 0, readFromFileStorage, errorHandler);

function readFromFileStorage(fs) {
  fs.root.getFile('file.txt', {}, function(fileEntry) {
    fileEntry.file(function(file) {
       var reader = new FileReader();

        reader.onloadend = function(e) {
          console.log(this.result);
        };

       reader.readAsText(file);
    }, errorHandler);
  }, errorHandler);
}

content.js

window.webkitRequestFileSystem(window.PERSISTENT, 0, readFromFileStorage, errorHandler);
// the function 'readFromFileStorage' is the same as in "popup.js"
4

1 に答える 1

1

ドキュメントによると:

ファイル システムに課せられたセキュリティ境界により、アプリケーションは異なるオリジンのデータにアクセスできなくなります。

popup.jsWeb ページに挿入されたコンテンツ スクリプトとコンテンツ スクリプトは 2 つの異なるオリジンと見なされるため、一方のファイル システムに保存されているデータに他方からアクセスすることはできません。
要件と特定の設定、メッセージ パッシングに基づいて、メッセージ パッシングを使用して、コンテンツ スクリプトとポップアップまたはバックグラウンド ページの間でデータを通信および受け渡すことができます。

于 2013-10-31T22:55:08.233 に答える