2012-06-13 17 views
5

voglio ottenere l'URL della pagina corrente dalla mia pagina default_popup in questo modo:Get URL della pagina corrente in Chrome estensione

chrome.tabs.query({active:true},function(tab){ 
    url = tab.url; 
}); 

E ho registrato questa pagina popup.html nel file manifest.json. Eppure Sto ottenendo il messaggio di errore:

Uncaught Type Error: Cannot call method 'query' of undefined

Che cosa sto facendo di sbagliato?

+0

L'errore che si ottiene significa che la funzione 'query' non esiste sull'oggetto' chrome.tabs'. La parte dell'estensione che chiami questa funzione ha i privilegi per accedere a questa funzione? E la tua estensione ha il privilegio * tabs *? – user2428118

+0

sì ho la mia estensione hanno il privilegio schede e sto usando il metodo sopra chrome.tabs.query() all'interno pagina popup.html che è registrato come default_popup in browser_action: campo nel file di manifest.json. –

risposta

1

Il parametro di callback dovrebbe specificare una funzione che assomiglia a questo:

function(array of Tab result){...} 

Forse si dovrebbe scrivere come questo

url = tab[0].url; 
+1

grazie ... scheda [0] opere, ma voglio chiedere nella query data attiva: vero ciò che l'altro schieramento scheda contiene mezzi che valore ha scheda [1], scheda [2] ... terranno ?? –

2

In realtà l'errore

Uncaught Type Error: Cannot call method 'query' of undefined 

era perché ero eseguire la pagina popup.html separatamente (separata dall'estensione) significa che stavo aprendo in modo esplicito popup.htm l pagina in browser per trovare l'errore, ma ho dimenticato che popup.html possibile utilizzare API Chrome se si tratta di una pagina aggiuntiva e la mia estensione non stava mostrando url perché ero tab.url usinf invece di scheda [0] .url così Tom suggerito giusto e

Problemi correlati