58

Is there a way for a Chrome extension to read properties from manifest.json? I'd like to be able to read the version number and use it in the extension.

4

5 回答 5

103

您可以只使用chrome.runtime.getManifest()来访问清单数据 - 您不需要 GET 并解析它。

var manifestData = chrome.runtime.getManifest();
console.log(manifestData.version);
console.log(manifestData.default_locale);
于 2013-01-15T22:49:56.967 回答
16

snipetchrome.app.getDetails()不再工作,返回错误:

TypeError: Object # has no method 'getDetails'

你想chrome.runtime.getManifest()改用。

于 2014-03-12T20:37:49.767 回答
6

我用这种方式。

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
于 2013-01-04T08:53:53.920 回答
6

从 Chrome 22 开始,您应该使用chrome.runtime

console.log(chrome.runtime.getManifest().version);

于 2015-09-08T10:02:56.633 回答
0

其实很简单。

function yourFunction() {
return chrome.app.getDetails().version;
}

您可以在其中命名yourFunction任何您喜欢的名称。

然后调用它,只需yourfunction()在要调用版本号的任何位置插入即可。

例如,如果您的版本号是9.07,那么实际上等于9.07yourfunction()的数值

于 2013-08-29T21:17:26.480 回答