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.
javascript
google-chrome
google-chrome-extension
albertosh
źródło
źródło
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 } })
źródło
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
.źródło
run_at: "document_end"
Możesz umieścić swój skrypt w skrypcie zawartości, zobacz
źródło
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!')
źródło
https://developer.chrome.com/extensions/content_scripts#matchAndGlob