tab query info google getcurrent extensiones extension chrome google-chrome google-chrome-extension

google-chrome - query - extensiones chrome



¿Cómo puedo obtener la URL de la pestaña actual para la extensión de Chrome? (6)

Así es como obtengo mi tabID:

var queryStr = ''?tabId=''; var tabID = parseInt(location.search.substring(queryStr.length));

Sé que hay muchas preguntas similares en SO, pero parece que no puedo hacerlo funcionar.

Estoy tratando de obtener la URL de la pestaña actual de mi extensión de Chrome. Sin embargo, la alerta (tab.url) devuelve "Indefinido". He agregado las "pestañas" a mis permisos en manifest.json. ¿Algunas ideas?

<html> <head> <script> chrome.tabs.getSelected(null, function(tab) { tab = tab.id; tabUrl = tab.url; alert(tab.url); }); </script> </head>


Con un poco de ayuda de ES6, puedes escribir fácilmente un código más agradable :)

chrome.tabs.query({ active: true, currentWindow: true }, ([currentTab]) => { console.log(currentTab.id); });


El problema está en esta línea:

tab = tab.id;

Debería ser algo así como:

var tabId = tab.id;


Esto es lo que funcionó para mí:

chrome.tabs.query({ active: true, lastFocusedWindow: true }, function(tabs) { // and use that tab to fill in out title and url var tab = tabs[0]; console.log(tab.url); alert(tab.url); });


Solo un FYI para personas de Google:

El método que utiliza OP está en desuso. Para obtener la pestaña que el usuario está viendo y solo en la ventana que están viendo, use esto:

chrome.tabs.query({active: true, currentWindow: true}, function(tabs) { // since only one tab should be active and in the current window at once // the return variable should only have one entry var activeTab = tabs[0]; var activeTabId = activeTab.id; // or do whatever you need });


manifest.json =>

"permisos": ["pestañas"]

en js =>

chrome.tabs.query({ active: true, lastFocusedWindow: true }, function(tabs) { // and use that tab to fill in out title and url var tab = tabs[0]; console.log(tab.url); alert(tab.url); });