簡體   English   中英

如何獲取不同選項卡的實例,以便可以存儲變量/執行特定於各個選項卡的操作

[英]How can I get instances of different tabs such that I can store variables / perform operations specific to respective tabs

注意:我正在使用GWT構建firefox擴展

假設我有一個可在瀏覽器的不同TAB上運行的類:

class TabRoutine{
  Element tab;
  static int tabData;

  public TabRoutine(Element tab){
    this.tab=tab;
  }

  public void tabMethod(){
    //Operation on tab
  }      
}

對於每個選項卡,我必須創建此類的實例,一旦該選項卡關閉,我想銷毀該實例。 因此,每個選項卡都有一個與之相關的int tabData。 這是我的處理方法:

我有與每個可用選項卡有關的document元素(如果有幫助,我也有window對象)。 因此,我決定使用

gBrowser.getBrowserForDocument(doc);

我的問題是,此瀏覽器元素對於標簽來說是否唯一? 我的意思是說我有2個標簽為doc1和doc2的標簽。 如果我將這些Browser元素映射到TabRoutine的對象,是否每個單獨的Tab總是返回相同(且正確)的瀏覽器,以便我可以找到與其相關的對象?

請說出問題的某些方面是否不清楚,我將詳細說明。 非常感謝!

是的,每個<browser>元素都與一個特定的選項卡關聯。 但是,它沒有綁定到特定的內容文檔-可以將不同的站點加載到同一選項卡中。 您的擴展程序啟動時,您可能想瀏覽gBrowser.browsers集合 然后,您將監聽TabOpenTabClose事件 ,以便在打開或關閉選項卡時得到通知(使用gBrowser.getBrowserForTab方法獲取與這些事件相關聯的<browser>元素)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM