2011-09-15 97 views
0

在firefox擴展上工作我最終在能夠在使用tabbrowser時抓住selectedBrowserselectedTab瀏覽器和選項卡之間的高級別是什麼?

不知道這兩個項目的高級別定義(一個tab有文件嗎?那爲什麼不tab有一個瀏覽器屬性?)

同樣地,我發現自己想知道,如果屬性相關聯什麼一個用戶目前正在做,如果我會更好使用gBrowser.selectedBrowser.MYSPECIALPROPERTY vs gBrowser.selectedTab.MYSPECIALPROPERTY

我通常需要一個browser,因爲它有我想要使用的方法,因爲我發現抓取瀏覽器和使用它們比拿起Tabs更容易,而且與他們很多,但我不喜歡這個想法沒有完全理解原因而偏好一個。

我也會發現自己想知道如何從selectedBrowserselectedTab或反之亦然,假設至少有一個轉換是有意義的。

這些問題有點可分,但我缺少一些關鍵的高層次理解,所以我不確定我能否問這些問題之一併得到解決我的困惑的答案。

回答

1

A <tabbrowser><tabbox>的專用版本。通常,<tabbox>是選項卡和關聯選項卡面板的集合。這裏的標籤實際上是一個標籤頭,你點擊切換到一個特定的標籤,標籤面板是顯示內容然後(它是標籤內容的容器)。在選項卡和選項卡面板之間沒有直接映射,它們只是恰好在它們各自的容器節點中具有相同的索引。至少這是一個普遍的想法,它可以通過linkedpanel attribute顯式鏈接到特定的面板這一事實而稍微複雜一些。

現在,一個<tabbrowser>在其每個選項卡面板中都有一個<browser>元素。但它也使用與<tabbox>相同的<tab>元素。由於<tab><browser>都可以在<tabbrowser>之外使用,因此您不會在其中找到任何特殊的API。這種API僅適用於<tabbrowser>

要獲得特定標籤頁眉的瀏覽器,您可以使用tabbrowser.getBrowserForTab()。反過來更復雜(通常是不必要的)。如果你真的需要它,你可以使用tabbrowser.getBrowserIndexForDocument()來獲得瀏覽器的索引。然後您可以通過tabbrowser.tabs.getItemAtIndex()獲取相應的選項卡。

只需重複一遍:通常您會想要使用<browser>元素。沒有什麼理由去看標籤標題(除非你想重新排序它們或類似的東西)。

相關問題