在 Google Chrome 应用程序中,是否可以从 background.js
脚本中访问捆绑的数据文件?
例如如果我有一个包含在应用程序中的名为 data.json
的文件,我可以在 background.js
脚本中使用 JavaScript API 来获取文件内容?
使用示例包目录结构:
/app/manfifest.json
/app/backround.js
/app/data.json
我想做这样的事情:
chrome.app.runtime.onLaunched.addListener(function() {
data = unknown.api.loadFileSync("data.json");
// do stuff with data
// ...
});
最佳答案
后台脚本可以使用XHR
访问资源。要获取包含资源的 URL,请使用 chrome.extension.getURL()
,它会返回资源的完全限定 URL。
function loadData (file, fn) {
var dataUrl = chrome.extension.getURL(file),
xhr = new XMLHttpRequest();
xhr.responseType = 'json';
xhr.onload = function () {
fn(null, this.response);
};
xhr.onerror = function () { fn(this.status); };
xhr.send();
}
chrome.app.runtime.onLaunched.addListener(function() {
loadData('data.json', function (err, data) {
//
});
});
另一种方法是将 data.json
文件转换为 data.js
文件,并将其作为后台脚本包含在 manifest.json
。这将允许您访问由 data.js
设置的任何变量。
list .json:
"background": {
"scripts": ["data.js", "background.js"]
}
关于javascript - 如何从 background.js 访问内部资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26838004/