Voglio creare un'estensione per Chrome che esegua alcuni script dopo che una pagina è stata caricata, non sono sicuro se devo implementare questa logica sulla pagina in background o se può essere altrove, qualsiasi aiuto qui sarà molto apprezzato.
Voglio creare un'estensione per Chrome che esegua alcuni script dopo che una pagina è stata caricata, non sono sicuro se devo implementare questa logica sulla pagina in background o se può essere altrove, qualsiasi aiuto qui sarà molto apprezzato.
Risposte:
Da uno script in background è possibile ascoltare l' chrome.tabs.onUpdated
evento e controllare la proprietà changeInfo.status
sulla richiamata. Può essere in caricamento o completo . Se è completo , esegui l'azione.
Esempio:
chrome.tabs.onUpdated.addListener( function (tabId, changeInfo, tab) {
if (changeInfo.status == 'complete') {
// do your things
}
})
Poiché questo probabilmente si attiverà al completamento di ogni scheda, puoi anche controllare se la scheda è active
sul suo attributo omonimo , in questo modo:
chrome.tabs.onUpdated.addListener( function (tabId, changeInfo, tab) {
if (changeInfo.status == 'complete' && tab.active) {
// do your things
}
})
Uncaught TypeError: Cannot read property 'onUpdated' of undefined
if (tab.url.startsWith("https://example.com") == false) return;
Se deve essere eseguito onload
sull'evento della pagina, il che significa che il documento e tutte le sue risorse sono state caricate, questo deve essere in uno script di contenuto incorporato in ciascuna pagina di cui si desidera tenere traccia onload
.
run_at: "document_end"
Puoi inserire il tuo script in uno script di contenuto, vedi
Questo codice dovrebbe farlo:
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!')
https://developer.chrome.com/extensions/content_scripts#matchAndGlob