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: http://www.mozilla.org/en-US/about/ info: http://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()
.