2013-03-01 12 views
5

Voglio fare un'estensione di Chrome per modificare la pagina dei risultati di ricerca di Google. So che posso usare lo script di contenuto per farlo perché ha la capacità di farlo. Ma sfortunatamente fallisce. Ho scritto il codiceUtilizza l'estensione di Chrome per modificare la pagina dei risultati di ricerca di Google

$('h3.r').append('<b>a</b>') 

o qualcos'altro relativo alle operazioni DOM hanno fallito tutti. Ma se ho appena scritto

alert('aa') 

o

document.body.style.backgroundColor='green' 

, funziona. Perché? A proposito, voglio avere un debug ma quando apro gli strumenti di sviluppo non riesco a trovare il mio script di contenuto di estensione. Riesco a vedere gli script dei contenuti di altre estensioni.

risposta

3

Hai aggiunto jQuery ai tuoi content_scripts in manifest?

Se si utilizza jQuery, è necessario scrivere manifest.json come questo:

"content_scripts":[ 
     { 
      "matches":["http://www.google.com/*"], 
      "js":["jquery-1.9.1.min.js", "contentscripts.js"] 
     } 
] 

OK, sorgente della pagina dopo la lettura della pagina dei risultati di ricerca di Google credo di sapere qual è il problema:

ricerca di Google carichi risultato con AJAX, quindi, quando si cambiano le parole di query e si esegue di nuovo la ricerca, la pagina NON si aggiorna, ecco perché non è possibile ottenere alcun elemento DOM nei risultati della ricerca.

Ciò significa che è necessario aggiungere un listener di eventi per DOMNodeInserted.

codice è come questo:

function fundH3(){ 
    $('h3.r').append('<b>a</b>') 

} 

searchResultArea.addEventListener('DOMNodeInserted', findH3); 
+0

Si, L'ho fatto. E assolutamente il problema ora è che non riesco a ottenere alcun nodo DOM della pagina. E sembra che lo script venga eseguito prima che il DOM venga caricato anche se aggiungo il run_at: document_end – user2086454

+0

@ user2086454: Hai aggiunto le autorizzazioni al manifest, condividi il codice pertinente, sarà utile ulteriormente – Sudarshan

+0

ehi, ho aggiornato la risposta, Spero che questo sarebbe di aiuto –

0

aggiungere le autorizzazioni dell'URL (S) si target per il file manifesto

{ 
--- 
    "permissions": [ 
     "https: //www.google.co.in/*" 
    ] 
--- 
} 

Riferimento

Problemi correlati