extensión de Google Chrome :: console.log() desde la página de fondo?

Resuelto Hailwood asked hace 14 años • 13 respuestas

Si llamo console.log('something');desde la página emergente o desde cualquier script incluido, funciona bien.

Sin embargo, como la página de fondo no se ejecuta directamente desde la página emergente, no se incluye en la consola.

¿Hay alguna manera de que pueda hacer que console.log()'s' en la página de fondo aparezca en la consola de la página emergente?

¿Hay alguna forma de, desde la página en segundo plano, llamar a una función en la página emergente?

Hailwood avatar Sep 30 '10 15:09 Hailwood
Aceptado

Puede abrir la consola de la página de fondo si hace clic en el enlace "background.html" en la lista de extensiones.

Para acceder a la página de fondo que corresponde a tus extensiones abre Settings / Extensionso abre una nueva pestaña e ingresa chrome://extensions. Verás algo como esta captura de pantalla.

Diálogo de extensiones de Chrome

Debajo de su extensión, haga clic en el enlace background page. Esto abre una nueva ventana. Para el ejemplo del menú contextual, la ventana tiene el título: _generated_background_page.html.

serg avatar Sep 30 '2010 17:09 serg

Cualquier página de extensión (excepto los scripts de contenido ) tiene acceso directo a la página de fondo a través de chrome.extension.getBackgroundPage().

Eso significa que, dentro de la página emergente , puedes simplemente hacer:

chrome.extension.getBackgroundPage().console.log('foo');

Para que sea más fácil de usar:

var bkg = chrome.extension.getBackgroundPage();
bkg.console.log('foo');

Ahora bien, si desea hacer lo mismo dentro de los scripts de contenido, debe utilizar Message Passing para lograrlo. La razón es que ambos pertenecen a dominios diferentes, lo cual tiene sentido. Hay muchos ejemplos en la página de transmisión de mensajes que puede consultar.

Espero que eso aclare todo.

Mohamed Mansour avatar Sep 30 '2010 13:09 Mohamed Mansour