2011-09-27 8 views
36

मैं अपने एक्सटेंशन जावास्क्रिप्ट फ़ाइलों में my manifest.json में परिभाषित संस्करण संख्या का उल्लेख करना चाहता हूं। क्या इसे करने का कोई तरीका है?क्या मैं अपने विस्तार की जावास्क्रिप्ट फ़ाइलों में my manifest.json से किसी प्रॉपर्टी तक पहुंच सकता हूं?

उत्तर

83

क्रोम 22 के बाद से आप chrome.runtime.getManifest() उपयोग करना चाहिए: तो, अब आप किसी भी इच्छित जानकारी प्राप्त कर सकते हैं।

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

+1, यह सुनिश्चित करना सुनिश्चित करें कि यह पहले उपलब्ध है या नहीं। अगर (typeof (chrome.runtime.getManifest) == 'function') { – fedmich

+4

क्रोम स्वचालित अद्यतन सुविधा के कारण जो सामान्य उपयोगकर्ता द्वारा अक्षम नहीं किया जा सकता है, मुझे लगता है कि वर्तमान में कोई भी 22 से नीचे संस्करण का उपयोग नहीं करता है। लेकिन यह एक अच्छा विचार है मेनिफेस्ट में शामिल करें: ** "minimal_chrome_version": "22.0.0.0" ** –

5

मुझे लगता है कि यह आपके लिए 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; 

})(); 

जो खोज रहे हैं और बस इतना ही है। यह शॉर्ट कोड स्निपेट मेनिफेस्ट ऑब्जेक्ट लोड करता है और इसे अन्य chrome.* एपीआई के बीच रखता है।

// current version 
chrome.manifest.version 

// default locale 
chrome.manifest.default_locale 
+0

बिल्कुल सही, यह काम किया: See docs here.

तो अब यह उतना ही आसान के रूप में है। केवल एक चीज जिसे मैं बदलना था, chrome.manifest के बजाय IIFE का नाम प्रकट करना था। – bittersweetryan

संबंधित मुद्दे

 संबंधित मुद्दे