从manifest.json中读取版本

时间:2013-01-03 23:56:54

标签: google-chrome-extension

Chrome扩展程序是否有办法从manifest.json读取属性?我希望能够阅读版本号并在扩展中使用它。

5 个答案:

答案 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 的数值