¿Cómo puedo obtener la URL de la pestaña actual desde una extensión de Google Chrome?

Resuelto Axiol asked hace 14 años • 11 respuestas

Me estoy divirtiendo con la extensión de Google Chrome y solo quiero saber cómo puedo almacenar la URL de la pestaña actual en una variable.

Axiol avatar Dec 30 '09 17:12 Axiol
Aceptado

Úselo chrome.tabs.query()así:

chrome.tabs.query({active: true, lastFocusedWindow: true}, tabs => {
    let url = tabs[0].url;
    // use `url` here inside the callback because it's asynchronous!
});

Deberá solicitar tabspermiso activeTaben el manifiesto de su extensión :

"permissions": [ ...
   "tabs"
]

o

"permissions": [ ...
   "activeTab"
]

Prefiera activeTabque su código use chrome.tabs.query después de que el usuario haya invocado explícitamente la extensión (haga clic en su ícono o en su elemento del menú contextual o presione su chrome.commandstecla de acceso rápido) porque este permiso no agrega ninguna advertencia al instalar la extensión, a diferencia tabsde lo que agrega Read your browsing historyque puede asustar a algunos usuarios.

Es importante tener en cuenta que la definición de su "pestaña actual" puede diferir según las necesidades de su extensión.

La configuración lastFocusedWindow: trueen la consulta es apropiada cuando desea acceder a la pestaña actual en la ventana enfocada del usuario (normalmente la ventana superior).

La configuración currentWindow: truele permite obtener la pestaña actual en la ventana donde se está ejecutando actualmente el código de su extensión. Por ejemplo, esto podría ser útil si su extensión crea una nueva ventana/ventana emergente (cambiando el enfoque), pero aún desea acceder a la información de la pestaña desde la ventana donde se ejecutó la extensión.

Elegí usarlo lastFocusedWindow: trueen este ejemplo porque Google señala casos en los que currentWindow es posible que no siempre estén presentes .

Eres libre de refinar aún más tu consulta de pestañas usando cualquiera de las propiedades definidas aquí: chrome.tabs.query

thauburger avatar Jan 10 '2013 05:01 thauburger

Otras respuestas suponen que desea saberlo a través de una ventana emergente o un script en segundo plano.

En caso de que desee conocer la URL actual a partir de un script de contenido , se aplica la forma estándar JS:

window.location.toString()

Puede utilizar propiedades de window.locationpara acceder a partes individuales de la URL, como host, protocolo o ruta.

Xan avatar Jul 20 '2016 12:07 Xan

¡Advertencia! chrome.tabs.getSelectedes obsoleto . Úselo chrome.tabs.querycomo se muestra en las otras respuestas.


Primero, debes configurar los permisos para la API en manifest.json:

"permissions": [
    "tabs"
]

Y para almacenar la URL:

chrome.tabs.getSelected(null,function(tab) {
    var tablink = tab.url;
});
Axiol avatar Dec 30 '2009 11:12 Axiol