这里的问题是,我在popup.js
中使用window.webkitRequestFileSystem
撰写的内容可以从那里读取,但我无法从content.js
读取。
PS:两个文件中的代码相同
的manifest.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"
答案 0 :(得分:1)
根据 the docs :
对文件系统施加的安全边界会阻止应用程序访问具有不同来源的数据。
popup.js
和注入网页的内容脚本被认为是两个不同的来源,因此您无法从另一个文件系统中访问存储在一个文件系统中的数据。
根据您的要求和特殊设置, Message Passing ,您可以使用消息传递在内容脚本和弹出窗口或后台页面之间进行通信和传递数据。