Para seguir este tutorial você precisará ter instalado o SDK e ter conhecimento básico sobre cfx.
Este tutorial usa a API action button, que está disponível somente do Firefox 29 em diante.
Para listar as tabs abertas, você pode iterar sobre o objeto tabs
.
O add-on a seguir adiciona um action button que registra as URLs abertas nas tabs quando clicado:
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); }
Note que para fazer isso funcionar você precisa salvar um ícone para o botão no diretório "data" do seu add-on como "icon-15.png": você pode baixar o ícone daqui: .
Se você executar o add-on, carregar um grupo de tabs, e clicar no botão, você verá a saída no linha de comando do console que parece com isto:
info: https://www.mozilla.org/en-US/about/ info: https://www.bbc.co.uk/
Você não consegue acesso direto a qualquer conteúdo hospedado na tab. Para acessar o conteúdo da tab você precisa anexar um script à tab usando tab.attach()
. Este add-on anexa um script a todas as tabs abertas. O script adiciona uma borda vermelha ao documento da tab:
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';" }); }
Aprendendo Mais
Para aprender mais sobre como trabalhar com tabs no SDK, veja a referência da API tabs
.
Para aprender mais sobre execução de scripts em tabs, veja o tutorial sobre uso do tab.attach()
.