Chrome扩展程序是否有办法从manifest.json读取属性?我希望能够阅读版本号并在扩展中使用它。
答案 0 :(得分:60)
您可以使用chrome.runtime.getManifest()
来访问清单数据 - 您无需获取并解析它。
var manifestData = chrome.runtime.getManifest();
console.log(manifestData.version);
console.log(manifestData.default_locale);
答案 1 :(得分:14)
snipet chrome.app.getDetails()
不再有效,正在返回错误:
TypeError:Object#没有方法'getDetails'
您想改用chrome.runtime.getManifest()
。
答案 2 :(得分:7)
我使用this方式。
chrome.manifest = (function() {
var manifestObject = false;
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
if (xhr.readyState == 4) {
manifestObject = JSON.parse(xhr.responseText);
}
};
xhr.open("GET", chrome.extension.getURL('/manifest.json'), false);
try {
xhr.send();
} catch(e) {
console.log('Couldn\'t load manifest.json');
}
return manifestObject;
})();
就是这样。这个简短的代码片段加载了清单对象,并将其放在其他chrome。* API中。所以,现在你可以得到你想要的任何信息:
// current version
chrome.manifest.version
// default locale
chrome.manifest.default_locale
答案 3 :(得分:3)
自Chrome 22以来,您应该使用chrome.runtime
val r:List[Person] = for {
JArray(persons) <- JsonMethods.parse(json) \ "persons"
JObject(person) <- persons
//JField("name", JString(name)) <- person
p = Person(person.head._2) //or Person(person.find(_._1=="name").map(_._2).getOrElse(null))
} yield p
println(r) //List(Person("Alex"), Person(null))
答案 4 :(得分:0)
实际上很简单。
function yourFunction() {
return chrome.app.getDetails().version;
}
您可以根据自己的喜好命名yourFunction
。
然后调用它,只需在要调用版本号的任何地方插入yourfunction()
。
例如,如果您的版本号 9.07 ,那么yourfunction()
实际上等于 9.07 的数值