注意:我正在使用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。以下是我如何处理它:
我有与每个选项卡有关的文档元素(如果有帮助,我也有窗口对象)。因此,我决定使用
gBrowser.getBrowserForDocument(doc);
我的问题是这个浏览器元素我对标签是唯一的吗?我所暗示的是说我有2个文件doc1和doc2的标签。如果我将这些浏览器元素映射到TabRoutine的对象,每个单独的选项卡是否总是返回相同(和正确)的浏览器,以便我可以找到与其相关的对象?
请说明问题的某些方面是否不清楚,我会详细说明。非常感谢!
答案 0 :(得分:0)
是的,每个<browser>
元素都与特定标签相关联。但是它不受特定内容文档的约束 - 可以将不同的站点加载到同一选项卡中。您可能希望在扩展程序启动时浏览gBrowser.browsers
collection。然后,只要打开或关闭标签,您就会收听TabOpen
and TabClose
events以获得通知(使用gBrowser.getBrowserForTab
method获取与这些事件相关联的<browser>
元素。)