2011-09-27 37 views

Respuesta

83

Desde cromo 22 se debe utilizar chrome.runtime.getManifest(). See docs here.

lo que ahora es tan simple como:

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

+1, asegúrese de probar si está disponible primero. if (typeof (chrome.runtime.getManifest) == 'function') { – fedmich

+4

Debido a la función de actualización automática de Chrome que no puede ser desactivada por un usuario ordinario, supongo que actualmente nadie usa la versión de abajo 22. Pero es una buena idea incluir en el manifiesto: ** "minimum_chrome_version": "22.0.0.0" ** –

5

creo que esto es lo que está buscando 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; 

})(); 

Y eso es todo. Este fragmento de código corto carga el objeto manifiesto y lo coloca entre otras API chrome.*. Por lo tanto, ahora usted puede conseguir cualquier información que desee:

// current version 
chrome.manifest.version 

// default locale 
chrome.manifest.default_locale 
+0

perfecto, esto funcionó. Lo único que tuve que cambiar fue el nombre del IIFE para manifestar en lugar de chrome.manifest. – bittersweetryan

Cuestiones relacionadas