2012-03-25 19 views
21

voglio controllare alcuni valori nel contenuto della pagina del browser Chrome quando completamente caricato cosìA pagina evento di carico in estensioni di Chrome

if(document.body.innerText.indexOf("Cat") !=-1) 

Dove e quando posso fare il mio assegno? per favore mi dia un esempio chiaro Ho letto qualche cosa su "Background.html" e "la trascrizione dei contenuti", ma non posso fare

risposta

48

Register a content script in the manifest file a "run_at": "document_idle" (che è il default) e inserire il codice nel file di script contenuti . Quindi lo script verrà eseguito quando la pagina è pronta.

Se si desidera rilevare dalla pagina di sfondo se una pagina è stata caricata completamente, utilizzare l'evento chrome.webNavigation.onCompleted e fare ciò che si desidera, ad esempio chiamando chrome.tabs.executeScript per eseguire uno script di contenuto. Questo metodo potrebbe essere utile rispetto al metodo precedente se l'elenco di URL è dinamico o se i pattern URL non possono essere descritti utilizzando la sintassi match pattern.

chrome.webNavigation.onCompleted.addListener(function(details) { 
    chrome.tabs.executeScript(details.tabId, { 
     code: ' if (document.body.innerText.indexOf("Cat") !=-1) {' + 
       '  alert("Cat not found!");' + 
       ' }' 
    }); 
}, { 
    url: [{ 
     // Runs on example.com, example.net, but also example.foo.com 
     hostContains: '.example.' 
    }], 
}); 

I webNavigation e di accoglienza delle autorizzazioni devono essere impostato in manifest.json, ad esempio:

{ 
    "name": "Test", 
    "version": "1.0", 
    "background": { "scripts": ["background.js"] }, 
    "permissions": [ "webNavigation", "*://*/*" ], 
    "manifest_version": 2 
} 
+0

Grazie Rob W, ma ho un sacco di codice dopo le istruzioni di controllo, non riesco a scriverlo dopo "codice: '" posso chiamare una funzione? – JustMe

+2

@ user1291538 Puoi metterlo in un file separato all'interno dell'estensione, e usare 'file: 'nameoffile.js'' invece di'' code ':' ... ''- Vedi anche la [documentazione collegata] (http: //code.google.com/chrome/extensions/tabs.html#method-executeScript). –

+0

@Xan, è "manifest_version": 2. Non 1. – Dudi

Problemi correlati