2011-10-04 6 views
7

estoy escribiendo una extensión de Chrome que tiene que hacer lo siguiente:extensión de Chrome: La escritura de contenido se ejecute en todas las páginas, y otro sólo se ejecuta en una página

  • inyectar un script contenido en la corriente (ninguna), cuando los incendios emergentes
  • inyectar un script diferente contenido en todas las páginas de un dominio específico, siempre

Hasta ahora he implementado la primera, llamando chrome.tabs.executeScript() en el archivo popup.html y que tiene la siguiente en el manifiesto para permitir la secuencia de comandos para ejecutar en cualquier página:

"permissions": [ 
    "tabs", "http://*/*" 
], 

Ahora, de acuerdo con http://code.google.com/chrome/extensions/content_scripts.html, si quiero un script de contenido se ejecute siempre en una página específica, debo declarar que en los permisos de manifiesto y definida para incluir sólo las páginas que el código debería ejecutarse Sin embargo, esto romperá la primera parte.

¿Cómo soluciono esto? La única forma en que puedo pensar es llamar siempre a algún tipo de script de "llamador" que luego hace su propia comprobación y carga de otros scripts, pero eso parece muy complicado, y supongo que tiene para ser una mejor manera.

+0

gracias por arreglar las etiquetas! No sabía que este último existía :) – Mala

Respuesta

12
{ 
    "content_scripts": [ 
    { 
     "matches": ["http://www.google.com/*"], 
     "js": ["myscript.js"] 
    } 
    ], 
    "permissions": [ 
    "tabs", "http://*/*" 
    ] 
} 

myscript.js se inyecta automáticamente a google.com, todavía se puede inyectar manualmente a http://*/*.

+0

Pregunta de seguimiento rápido: 'myscript.js' no tiene acceso al mismo localStorage como el resto de la extensión. Realmente solo quiero ejecutar 'myscript.js' si se establece una opción particular en la extensión (almacenada en localStorage) ... ¿cómo lo haría? – Mala

+1

@Mala Debería enviar una solicitud a la página de fondo, leer localStorage allí y pasar el resultado. Ver http://code.google.com/chrome/extensions/dev/messaging.html – serg

+0

impresionante, gracias, funcionó :) Ojalá las extensiones de Firefox fueran tan fáciles de hacer – Mala

Cuestiones relacionadas