Obtener la lista de las pestañas abiertas

Para realizar los pasos que se describen a continuación es necesario tener instalado el SDK y conocimientos básico de cfx.

Este ejemplo usa la API action button, la cual esta solo disponible para Firefox 29 en adelante.

Para listar las pestañas abiertas, se puede iterar sobre el mismo objeto tabs.

El siguiente add-on agrega un action button que registra las URLs de las pestañas abiertas cuando el/la usuario/a hacen click en el:

require("sdk/ui/button/action").ActionButton({
  id: "list-tabs",
  label: "List Tabs",
  icon: "./icon-16.png",
  onClick: listTabs
});

function listTabs() {
  var tabs = require("sdk/tabs");
  for (let tab of tabs)
    console.log(tab.url);
}

Observe que para hacer que esto funcione debe guardar un icono para el botón al directorio "data" del add-on con el nombre de "icon-16.png": puede descargarlo de aqui: .

Ejecute el add-on, cargue algunas pestañas y hace click en el botón. Verá en la terminal una salida similar a esta:

info: http://www.mozilla.org/en-US/about/
info: http://www.bbc.co.uk/

No tiene acceso directo a ningún contenido de la pestaña. Para acceder al contenido de la pestaña necesita adjuntar un script usando tab.attach(). Este add-on adjunta un script a todas las pestañas abiertas. El script agrega un borde rojo al documento de la pestaña:

require("sdk/ui/button/action").ActionButton({
  id: "list-tabs",
  label: "List Tabs",
  icon: "./icon-16.png",
  onClick: listTabs
});

function listTabs() {
  var tabs = require("sdk/tabs");
  for (let tab of tabs)
    runScript(tab);
}
 
function runScript(tab) {
  tab.attach({
    contentScript: "document.body.style.border = '5px solid red';"
  });
}

Conozca más

Para conocer más sobre las pestañas en el SDK, puede dirigirse a la referencia de tabs en la API.

Para conocer mas sobre la ejecución de scripts en las pestañas, puede diregirse a usando tab.attach() en el tutorial.

Etiquetas y colaboradores del documento

Etiquetas: 
 Colaboradores en esta página: Carbass, goliveira
 Última actualización por: Carbass,