【发布时间】:2015-04-19 17:59:19
【问题描述】:
我想在我的 crx 中包含一些文件,然后能够将它们作为数据读入(读入字符串或 Blob)。我该怎么做?有没有办法为此使用 FileSystem API?
【问题讨论】:
标签: google-chrome google-chrome-extension google-chrome-app
我想在我的 crx 中包含一些文件,然后能够将它们作为数据读入(读入字符串或 Blob)。我该怎么做?有没有办法为此使用 FileSystem API?
【问题讨论】:
标签: google-chrome google-chrome-extension google-chrome-app
chrome.runtime.getPackageDirectoryEntry 于 2013 年 6 月 13 日实施,预计在 Chrome 29 中:
Issue 177208:添加只读文件系统 API 以访问打包的应用程序/扩展资源
【讨论】:
web_accessible?
file://WHAT_GOES_HERE/myfile.txt?
通过 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"
]
【讨论】: