2

我正在编写一个 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);
    }
);
4

3 回答 3

1

在您的代码中, event.data 将为您提供一个BrowserTab 对象。如果你想要选项卡的当前 URI,你想要tab.uri.spec字符串版本,或者只是tab.uri想要一个nsIURI 对象

于 2009-05-18T16:18:38.727 回答
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
}
于 2009-05-18T14:12:06.127 回答
0

我在 MDC 中添加了一些新内容,应该对此有所帮助;现在可以在此处的示例中获得有关如何将选项卡对象从 TabOpen 事件中拉出的信息:

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

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

于 2009-05-19T14:33:11.950 回答