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",
  ]
}

动作.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);
}

内容.js

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

1 回答 1

1

根据文档

强加于文件系统的安全边界可防止应用程序访问具有不同来源的数据。

popup.js并且注入网页的内容脚本被认为是两个不同的来源,因此您无法从另一个访问存储在一个文件系统中的数据。
根据您的要求和特定设置,消息传递您可以使用消息传递在内容脚本和弹出页面或背景页面之间进行通信和传递数据。

于 2013-10-31T22:55:08.233 回答