2012-06-13 22 views
5

Quiero obtener el URL de la página actual de mi página default_popup así:Obtener URL de la página actual en la extensión de Chrome

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

Y me he registrado esta página popup.html en el archivo manifest.json. Sin embargo estoy recibiendo el mensaje de error:

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

¿Qué estoy haciendo mal?

+0

El error que está recibiendo significa que la función 'query' no existe en el objeto' chrome.tabs'. ¿Tiene la parte de la extensión a la que llama esta función los privilegios para acceder a esta función? ¿Y su extensión tiene el privilegio * tabs *? – user2428118

+0

sí, mi extensión tiene privilegio de pestañas y estoy usando el método anterior chrome.tabs.query() dentro de la página popup.html que está registrado como default_popup en el campo browser_action: en el archivo manifest.json. –

Respuesta

1

El parámetro de devolución de llamada debe especificar la función que tiene este aspecto:

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

tal vez debería escribir como este

url = tab[0].url; 
+1

gracias ... la pestaña [0] funciona pero quiero preguntar en la consulta dada activa: cierto lo que contiene la otra tabla de pestañas significa qué valor tiene la pestaña [1], pestaña [2] ... ¿aguantará? –

2

En realidad el error

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

fue porque estaba ejecutar popup.html página por separado (aparte de la extensión) significa que estaba abriendo explícitamente popup.htm l página en el navegador para encontrar el error, pero olvidé que popup.html puede usar la API de Chrome si se trata de una página de extensión y mi extensión no mostraba la url porque estaba usinf tab.url en lugar de tab [0] .url, así que Tom sugirió ans derecho

Cuestiones relacionadas