2011-06-16 20 views
38

Escribo una extensión de Chrome. Necesito obtener el ID de mi extensión en mi código, por lo que no necesito cambiarlo manualmente cada vez. ¿Cómo puedo hacer esto?¿Cómo obtener el ID de mi extensión desde JavaScript?

+0

que no creen cambios Identificación de la extensión una vez instalado? Incluso cuando lo instala "desempaquetado" para fines de desarrollo, mantiene la misma ID a menos que desinstale y reinstale, ¿no? – WesleyJohnson

+0

Cuando lo desarrollo, obtuve id1, cuando lo publico, obtuve id2, son diferentes .. – wong2

+2

¿Por qué necesita obtener la identificación? –

Respuesta

61

se puede conseguir así (no hay permisos adicionales requeridos) de dos maneras diferentes:

  1. el uso de tiempo de ejecución de la API: var myid = chrome.runtime.id;

  2. usando la API i18n: var myid = chrome.i18n.getMessage("@@extension_id");

pero no lo necesita para las páginas de apertura, como chrome.tabs.create() (y algunos otros) entender las rutas relativas.

Así que para abrir index.html de la carpeta de extensión que sólo debe utilizar:

chrome.tabs.create({url: "index.html"}); 
+0

¿Dónde aprendiste sobre' chrome.i18n.getMessage ("@@ extension_id"); '?!? :) –

+1

@JohnS Vea http://code.google.com/chrome/extensions/dev/i18n.html#overview-predefined – serg

+2

¡Gracias! ¡Creo que debería RTFM! :) –

9

Si estás haciendo las cosas con la localización, parece que la mecánica de extensión ofrecen algunas placeholders para acceder a su ID de extensión:

Si sólo está tratando de acceder a direcciones URL de archivos locales a su extensión, puede sólo tiene que utilizar chrome.extension.getURL("some file name");

Si usted tiene otra razón para que realmente necesidad de conocer el ID de la extensión, no estoy seguro de que hay una manera directa de hacer las cosas desde dentro de la propia extensión. Las dos maneras que me vienen a la cabeza son usar chrome.extension.getURL("some file name") y luego analizar el ID de la extensión de esa URL devuelta, o usar chrome.management.getAll() y recorrer todas las extensiones instaladas hasta que encuentre la suya usando una coincidencia en name y luego acceder la id:

Cuestiones relacionadas