Как получить вкладку в событии TabOpen с Firefox FUEL? - PullRequest
2 голосов
/ 18 мая 2009

Я пишу расширение для Firefox, и мне действительно нужно слушать события TabOpen и получать некоторые подробности об открывшейся вкладке. Но я не могу понять, как получить фактическую вкладку от объекта event, который получает мой обратный вызов. Это где-то в event.data? Есть ли способ осмотреть этот объект?

Какой-то код, который я пробовал до сих пор, но он не работает:

Application.activeWindow.events.addListener("TabOpen",
    function(event) {
        Application.console.log("TabOpen");
        var tab = event.data.target;
        Application.console.log(tab.uri);
    }
);

Ответы [ 3 ]

1 голос
/ 18 мая 2009

В вашем коде event.data даст вам объект BrowserTab . Если вы хотите текущий URI вкладки, вам нужно tab.uri.spec для строковой версии или просто tab.uri, если вы хотите nsIURI объект .

0 голосов
/ 19 мая 2009

Я добавил новый контент в MDC, который должен помочь с этим; информация о том, как вытащить объект tab из события TabOpen, теперь доступна в следующем примере:

https://developer.mozilla.org/En/FUEL/Window

Также сделал какую-то другую уборку, пока я был там. Надеюсь, это поможет (особенно после обновления поискового индекса).

0 голосов
/ 18 мая 2009

Вот пример из MDC, но без использования ТОПЛИВА:

// add event listener
var container = gBrowser.mPanelContainer;
container.addEventListener("DOMNodeInserted", exampleTabAdded, false);

function exampleTabAdded(event)
{ // listening for new tabs
  if (event.relatedNode != gBrowser.mPanelContainer)
    return; //Could be anywhere in the DOM (unless bubbling is caught at the interface?)

  var browser;
    browser = event.target.childNodes[1];
  // browser is the XUL element of the browser that's been added
}
...