在Firefox扩展中,我暂时将数据保存在JavaScript中以显示在侧边栏中。当选中标签时,我想将侧边栏中的文本更改为正确的数据。什么是最好的对象用作每个标签的“标识符”?我试图使用标签对象。但是,我坚持如何将数据关联到选项卡。目前,我在一个选项卡中的文档上得到一个加载事件。然后我处理文档中的数据。在显示标签中的新数据之后,我想将其保存到地图中,并将选项卡作为关键字,以便我可以在SelectTab事件中检索它。但是,我不确定如何在加载事件中查找文档中的选项卡。Mozilla扩展 - 每个打开的标签跟踪数据
所以,请告诉我如何从文档对象中获取标签对象,或者使用更好的东西作为关键。
以下是我找到的一种方法,但我确定有更优雅的东西。
getTabForDocument : function (document) {
var wm = Components.classes["@mozilla.org/appshell/window-mediator;1"]
.getService(Components.interfaces.nsIWindowMediator);
for (var found = false, index = 0, tabbrowser = wm.getEnumerator('navigator:browser').getNext().gBrowser;
index < tabbrowser.tabContainer.childNodes.length && !found;
index++) {
// Get the next tab
var currentTab = tabbrowser.tabContainer.childNodes[index];
if (currentTab.linkedBrowser.contentWindow.document == document)
{
return currentTab;
}
}
return null;
},
谢谢...
这有助于解决存储问题。您是否也有办法轻松从文档中获取浏览器? – Andrew 2010-09-23 12:54:25
我编辑了我的答案,并提供了如何做到这一点的信息。 – 2010-09-23 14:29:03