我想在我的crx中包含一些文件,然后能够将它们作为数据读入(到字符串或Blob中)。我该怎么做?有没有办法使用FileSystem API?
答案 0 :(得分:5)
chrome.runtime.getPackageDirectoryEntry 于2013-06-13实施,预计将在Chrome 29中实现:
Issue 177208:添加只读FileSystem API以访问打包的应用/扩展资源
答案 1 :(得分:1)
通过XHR从crx读取文件内容比FileSystem API简单得多:
var url = chrome.extension.getURL('the_file.txt'); // full url
var req = new XMLHttpRequest(); // read via XHR
req.open('GET', url);
req.onreadystatechange = function(e) {
if (req.readyState === 4 && req.status === 200) {
console.log(data);
} else {
// error
}
}
如果要在注入的上下文中发出请求,则必须首先在manifest.json
中声明可访问的资源,在可访问的资源条目中列出文件名(支持通配符)。
"web_accessible_resources": [
"path_to_the_file.html",
"just_another_folder/*.txt"
]