extensión de Google Chrome :: console.log() desde la página de fondo?
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?
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 / Extensions
o abre una nueva pestaña e ingresa chrome://extensions
. Verás algo como esta captura de pantalla.
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
.
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.