0

注:GWTを使用してFirefox拡張機能を構築しています

ブラウザのさまざまなタブで動作するクラスがあるとします。

class TabRoutine{
  Element tab;
  static int tabData;

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

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

タブごとに、タブが閉じたら破棄したいこのクラスのインスタンスを作成する必要があります。したがって、各タブには関連する int tabData があります。これが私がそれにアプローチした方法です:

使用可能な各タブに関連するドキュメント要素があります (それが役立つ場合は、window オブジェクトもあります)。したがって、私は使用することにしました

gBrowser.getBrowserForDocument(doc);

私の質問は、このブラウザ要素はタブに対して一意ですか? つまり、ドキュメント doc1 と doc2 を含む 2 つのタブがあるとします。これらの Browser 要素を TabRoutine のオブジェクトにマップすると、個々のタブは常に同じ (そして正しい) ブラウザを返すので、それに関連するオブジェクトを見つけることができますか?

質問の一部が不明な点があれば教えてください。詳しく説明します。どうもありがとう!

4

1 に答える 1

0

はい、各<browser>要素は特定のタブに関連付けられています。ただし、特定のコンテンツ ドキュメントにバインドされているわけではありません。別のサイトを同じタブに読み込むことができます。拡張機能の開始時にgBrowser.browsersコレクションを調べたいと思うでしょう。次にTabOpenTabCloseイベントをリッスンして、タブが開いたり閉じたりするたびに通知を受け取ります (gBrowser.getBrowserForTabメソッド<browser>を使用して、これらのイベントが関連付けられている要素を取得します)。

于 2012-06-11T07:05:01.120 に答える