¿Cómo puedo obtener la URL de la pestaña actual desde una extensión de Google Chrome?
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.
Ú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 tabs
permiso activeTab
en el manifiesto de su extensión :
"permissions": [ ...
"tabs"
]
o
"permissions": [ ...
"activeTab"
]
Prefiera activeTab
que 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.commands
tecla de acceso rápido) porque este permiso no agrega ninguna advertencia al instalar la extensión, a diferencia tabs
de lo que agrega Read your browsing history
que 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: true
en 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: true
le 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: true
en 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
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.location
para acceder a partes individuales de la URL, como host, protocolo o ruta.
¡Advertencia! chrome.tabs.getSelected
es obsoleto . Úselo chrome.tabs.query
como 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;
});