В расширении 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
Я отредактировал свой ответ с информацией о том, как это сделать. –