Chcę stworzyć rozszerzenie chrome, które wykonuje niektóre skrypty po załadowaniu jednej strony, nie jestem pewien, czy muszę zaimplementować tę logikę na stronie w tle, czy może to być gdziekolwiek indziej, każda pomoc będzie bardzo mile widziana.
Chcę stworzyć rozszerzenie chrome, które wykonuje niektóre skrypty po załadowaniu jednej strony, nie jestem pewien, czy muszę zaimplementować tę logikę na stronie w tle, czy może to być gdziekolwiek indziej, każda pomoc będzie bardzo mile widziana.
Odpowiedzi:
Ze skryptu działającego w tle możesz odsłuchać chrome.tabs.onUpdatedzdarzenie i sprawdzić właściwość changeInfo.statuswywołania zwrotnego. Może być ładowany lub kompletny . Jeśli jest zakończona , wykonaj czynność.
Przykład:
chrome.tabs.onUpdated.addListener( function (tabId, changeInfo, tab) {
if (changeInfo.status == 'complete') {
// do your things
}
})
Ponieważ będzie to prawdopodobnie wywołać na każdym zakończeniu karcie można również sprawdzić, czy karta jest activena swoim jednobrzmiące atrybutu , podobnie jak to:
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;
Jeśli musi być uruchamiany na onloadzdarzeniu strony, co oznacza, że dokument i wszystkie jego zasoby zostały załadowane, musi to znajdować się w skrypcie zawartości osadzonym na każdej stronie, którą chcesz śledzić onload.
run_at: "document_end"
Możesz umieścić swój skrypt w skrypcie zawartości, zobacz
Ten kod powinien to zrobić:
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