我正在编写一个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);
}
);
答案 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
在我做的时候还做了一些其他的清理工作。希望这会有所帮助(特别是一旦搜索索引刷新)。