在firefox扩展程序中,我暂时将数据保存在javascript中以显示在侧边栏中。选择选项卡后,我想将侧栏中的文本更改为正确的数据。每个选项卡的“标识符”最佳对象是什么?我正在尝试使用tab对象。但是,我不知道如何将数据关联到选项卡。目前,我在选项卡中获取文档上的加载事件。然后我处理文档中的数据。在选项卡中显示新数据后,我想将其保存到地图中,并将选项卡作为键,以便我可以在SelectTab事件中检索它。但是,我不确定如何在加载事件中找到文档中的选项卡。
所以请告诉我如何从文档对象中获取制表符对象,或者更好的方法来用作键。
以下是我找到的一种方式,但我确信有更优雅的东西。
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;
},
...谢谢
答案 0 :(得分:2)
请看一下:https://developer.mozilla.org/en/Code_snippets/Tabbed_browser,尤其是 gBrowser.selectedBrowser 部分和https://developer.mozilla.org/En/Listening_to_events_on_all_tabs
要将数据与标签相关联,您可以使用浏览器上的setUserData方法。
要获取文档的浏览器,请使用 gBrowser 全局对象上的getBrowserForDocument方法。