2009-05-18 31 views
2

我正在寫一個Firefox擴展,真的需要聽取TabOpen事件並獲取有關已打開的選項卡的一些詳細信息。但我不知道如何從我的回調收到的event對象中獲得實際選項卡。在event.data的某個地方?有沒有辦法檢查這個對象?如何使用Firefox FUEL獲取TabOpen事件中的選項卡?

,我到目前爲止已經試過,但它不工作的一些代碼:

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

回答

1

在你的代碼,事件.data會給你一個BrowserTab object。如果你想要標籤的當前URI,你需要tab.uri.spec作爲字符串版本,或者如果你想要nsIURI object,那麼只需要tab.uri

+0

謝謝,這工作很好。你能否告訴我這個祕密,你怎麼知道這件事?因爲在MDC中我找不到任何關於此的信息。 – vava 2009-05-19 02:32:56

+0

我是一名Mozilla開發人員,所以我首先去了源代碼來看看事情。我不確定源代碼可以幫助那些不太熟悉它的人... 我會讓我們的文檔人員知道我們可能在這裏缺乏一點。 – sdwilsh 2009-05-19 13:44:12

0

這裏距離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 
} 
+0

嗯,這絕對是作弊:)我寧願更多的版本不可知論的東西。 – vava 2009-05-18 14:23:54

0

我已經向MDC添加了一些新內容,應該可以幫助解決這個問題;如何拉動標籤對象了TabOpen事件的信息現在在這裏的例子可供選擇:

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

也做了一些其他的清理,而我在這。希望這會有所幫助(特別是一旦搜索索引刷新)。

相關問題