如何使用Firefox FUEL在TabOpen事件中获取选项卡?

时间:2009-05-18 14:00:57

标签: firefox events firefox-addon

我正在编写一个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 个答案:

答案 0 :(得分:1)

在您的代码中,event.data会为您提供BrowserTab object。如果您想要标签的当前URI,则需要tab.uri.spec作为字符串版本,如果您想要nsIURI object,则只需tab.uri

答案 1 :(得分:0)

这是MDC的一个例子,但没有使用FUEL:

// 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
}

答案 2 :(得分:0)

我已经向MDC添加了一些新内容,应该对此有所帮助;有关如何将Tab对象拉出TabOpen事件的信息现在可在此处的示例中找到:

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

在我做的时候还做了一些其他的清理工作。希望这会有所帮助(特别是一旦搜索索引刷新)。