如何在app / extension的crx中读取文件的文件内容?

时间:2013-06-18 22:03:03

标签: google-chrome google-chrome-extension google-chrome-app

我想在我的crx中包含一些文件,然后能够将它们作为数据读入(到字符串或Blob中)。我该怎么做?有没有办法使用FileSystem API?

2 个答案:

答案 0 :(得分:5)

chrome.runtime.getPackageDirectoryEntry 于2013-06-13实施,预计将在Chrome 29中实现:

Issue 177208:添加只读FileSystem API以访问打包的应用/扩展资源

更改:https://chromiumcodereview.appspot.com/16470003

答案 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"
]