0

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

4

2 回答 2

5

chrome.runtime.getPackageDirectoryEntry于 2013 年 6 月 13 日实施,预计在 Chrome 29 中:

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

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

于 2013-06-18T23:36:36.853 回答
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"
]
于 2015-04-19T09:59:19.067 回答