mozilla
Your Search Results

    List Open Tabs

    To follow this tutorial you'll need to have installed the SDK and learned the basics of cfx.

    This example uses the action button API, which is only available from Firefox 29 onwards.

    To list the open tabs, you can iterate over the tabs object itself.

    The following add-on adds an action button that logs the URLs of open tabs when the user clicks it:

    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 that to get this to work you will need to save an icon for the button to your add-on's "data" directory as "icon-16.png": you can download the icon from here: .

    If you run the add-on, load a couple of tabs, and click the button, you'll see output in the console that looks like this:

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

    You don't get direct access to any content hosted in the tab. To access tab content you need to attach a script to the tab using tab.attach(). This add-on attaches a script to all open tabs. The script adds a red border to the tab's document:

    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';"
      });
    }
    

    Learning More

    To learn more about working with tabs in the SDK, see the tabs API reference.

    To learn more about running scripts in tabs, see the tutorial on using tab.attach().

    Document Tags and Contributors

    Tags: 
    Contributors to this page: wbamberg, tomica, XrXrXr
    Last updated by: wbamberg,
    Hide Sidebar