我可以从扩展程序的 JavaScript 文件中的 manifest.json 访问属性吗?

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/7573191/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-10-26 00:35:28  来源:igfitidea点击:

Can I access a property from my manifest.json in my extension's JavaScript files?

javascriptgoogle-chrome-extension

提问by bittersweetryan

I'd like to refer to the version number as defined in my manifest.jsonin my extension's JavaScript files.

我想参考我manifest.json在扩展的 JavaScript 文件中定义的版本号。

Is there any way to do this?

有没有办法做到这一点?

回答by Konstantin Smolyanin

Since chrome 22 you should use chrome.runtime.getManifest(). See docs here.

从 chrome 22 开始,您应该使用chrome.runtime.getManifest(). 请参阅此处的文档。

So now it is as simple as:

所以现在它很简单:

var manifest = chrome.runtime.getManifest();
console.log(manifest.name);
console.log(manifest.version);

回答by sanbor

I think that this is what you're looking for http://www.martinsikora.com/accessing-manifest-json-in-a-google-chrome-extension

我认为这就是你正在寻找的http://www.martinsikora.com/accessing-manifest-json-in-a-google-chrome-extension

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;

})();

And that's all. This short code snippet loads manifest object and put's it among other chrome.*APIs. So, now you can get any information you want:

就这样。这个简短的代码片段加载清单对象并将其放在其他chrome.*API 中。所以,现在你可以获得任何你想要的信息:

// current version
chrome.manifest.version

// default locale
chrome.manifest.default_locale