Quero fazer uma extensão do Chrome que execute alguns scripts depois que uma página for carregada, não tenho certeza se tenho que implementar essa lógica na página de fundo ou pode ser em qualquer outro lugar, qualquer ajuda aqui será muito apreciada.
javascript
google-chrome
google-chrome-extension
albertosh
fonte
fonte
Respostas:
A partir de um script em segundo plano, você pode ouvir o
chrome.tabs.onUpdated
evento e verificar a propriedadechangeInfo.status
no retorno de chamada. Ele pode estar carregando ou completo . Se estiver completo , execute a ação.Exemplo:
chrome.tabs.onUpdated.addListener( function (tabId, changeInfo, tab) { if (changeInfo.status == 'complete') { // do your things } })
Como isso provavelmente será acionado a cada conclusão da guia, você também pode verificar se a guia está
active
em seu atributo homônimo , como este:chrome.tabs.onUpdated.addListener( function (tabId, changeInfo, tab) { if (changeInfo.status == 'complete' && tab.active) { // do your things } })
fonte
Uncaught TypeError: Cannot read property 'onUpdated' of undefined
if (tab.url.startsWith("https://example.com") == false) return;
Se ele precisa ser executado no
onload
evento da página, o que significa que o documento e todos os seus ativos foram carregados, isso precisa estar em um script de conteúdo embutido em cada página para a qual você deseja rastrearonload
.fonte
run_at: "document_end"
Você pode colocar seu script em um script de conteúdo, consulte
fonte
Este código deve fazer isso:
manifest.json
{ "name": "Alert 'hello world!' on page opening", "version": "1.0", "manifest_version": 2, "content_scripts": [ { "matches": [ "<all_urls>" ], "js": ["content.js"] } ] }
content.js
alert('Hello world!')
fonte
https://developer.chrome.com/extensions/content_scripts#matchAndGlob