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.onUpdated
zdarzenie i sprawdzić właściwość changeInfo.status
wywoł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 active
na 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 onload
zdarzeniu 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