Se eu ligar console.log('something');
da página pop-up, ou qualquer script incluído fora, ele funciona bem.
No entanto, como a página de plano de fundo não é executada diretamente na página pop-up, ela não é incluída no console.
Existe uma maneira de conseguir que console.log()
a página de plano de fundo apareça no console da página pop-up?
existe alguma maneira de, a partir da página de plano de fundo, chamar uma função na página pop-up?
Respostas:
Qualquer página de extensão (exceto scripts de conteúdo ) tem acesso direto à página de segundo plano via
chrome.extension.getBackgroundPage()
.Isso significa que, na página pop - up , você pode fazer:
Para facilitar o uso:
Agora, se você quiser fazer o mesmo nos scripts de conteúdo, precisará usar o Message Passing para conseguir isso. A razão, ambos pertencem a domínios diferentes, que fazem sentido. Existem muitos exemplos na página Passagem de mensagem para você conferir.
Espero que isso limpe tudo.
fonte
alert()
chrome.extension.getBackgroundPage()
eu entendinull
. Preciso ter permissões definidas ou alguma outra configuração?Você pode abrir o console da página de plano de fundo se clicar no link "background.html" na lista de extensões.
Para acessar a página de plano de fundo que corresponde às suas extensões, abra
Settings / Extensions
ou abra uma nova guia e insirachrome://extensions
. Você verá algo como esta captura de tela.Sob sua extensão, clique no link
background page
. Isto abre uma nova janela. Para a amostra do menu de contexto da janela tem o título:_generated_background_page.html
.fonte
Para responder sua pergunta diretamente, quando você chama
console.log("something")
de segundo plano, esta mensagem é registrada no console da página de segundo plano. Para visualizá-lo, você pode acessarchrome://extensions/
e clicar neleinspect view
na sua extensão.Quando você clica no pop-up, ele é carregado na página atual; portanto, o console.log deve mostrar a mensagem de log na página atual.
fonte
Você ainda pode usar console.log (), mas ele é registrado em um console separado. Para visualizá-lo - clique com o botão direito do mouse no ícone da extensão e selecione "Inspecionar pop-up".
fonte
A solução mais simples seria adicionar o seguinte código na parte superior do arquivo. Além disso, você pode usar toda a API do console do Chrome como faria normalmente.
fonte
Abrir registro:
fonte
Tente isso, se você deseja fazer logon no console da página ativa:
fonte
Em relação à pergunta original, gostaria de acrescentar à resposta aceita por Mohamed Mansour que também há uma maneira de fazer isso funcionar ao contrário:
Você pode acessar outras páginas de extensão (página de opções, página pop-up) na página / script de plano de fundo com a
chrome.extension.getViews()
chamada. Como descrito aqui .fonte
É um post antigo, com boas respostas, mas adiciono meus dois bits. Não gosto de usar console.log, prefiro usar um logger que faça logon no console ou onde quiser, por isso tenho um módulo que define uma função de log um pouco como esta
Quando eu chamo log ("este é o meu log"), ele grava a mensagem no console pop-up e no console em segundo plano.
A vantagem é poder alterar o comportamento dos logs sem precisar alterar o código (como desativar logs para produção, etc ...)
fonte
Para obter um log do console a partir de uma página de segundo plano, você precisa escrever o seguinte snippet de código na sua página de segundo plano background.js -
Em seguida, carregue a extensão e inspecione sua página de plano de fundo para ver o log do console.
Continue!!
fonte