Как создать дополнение Firefox, чтобы всегда показывать сохраненные в закладках сведения (например, теги) для текущей вкладки

#javascript #firefox #firefox-addon #firefox-addon-sdk

#javascript #firefox #firefox-addon #firefox-addon-sdk

Вопрос:

Проблема

В Firefox, когда текущая вкладка содержит страницу с закладками, мне нужно всегда видеть сведения, хранящиеся в соответствующей закладке (имя, папка, теги и т. Д.), Без единого дополнительного щелчка.

Мне нужна помощь в решении этой (казалось бы, решаемой) проблемы.

Возможные решения:

  • Показывать сведения о закладках в виде текста, добавляемого в строку заголовка
  • Показывать сведения о закладках с помощью элементов управления, динамически создаваемых на выделенной панели инструментов

Технические вопросы

  1. Возникает ли событие при изменении закладки [для текущей вкладки]? Может ли аддон реагировать на такое событие?
  2. Может ли дополнение изменять текст, отображаемый в строке заголовка для текущей вкладки?
  3. Может кто-нибудь предоставить ссылку на исходный код для простого, ~ современного аддона, который добавляет панель инструментов? Я знаю / использую строку состояния загрузки S3, но она довольно продвинута для моих навыков разработки Firefox.

Ответ №1:

Хорошая идея.

Вот как получить теги для URL.

 var navBookmarksService = Components.classes["@mozilla.org/browser/nav-bookmarks-service;1"].getService(Components.interfaces.nsINavBookmarksService);
var urlToCheckIfBookmarked = 'https://www.bing.com/';
var uri = Services.io.newURI(urlToCheckIfBookmarked, null, null);
console.log(navBookmarksService.isBookmarked(uri)) //this line tells you if the url is bookmarked

var taggingSvc = Components.classes["@mozilla.org/browser/tagging-service;1"].getService(Components.interfaces.nsITaggingService);
var tags = taggingSvc.getTagsForURI(uri)
console.log(tags)
 

См. Службу тегов: https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsITaggingService

Возникает ли событие при изменении закладки [для текущей вкладки]? Может ли аддон реагировать на такое событие?

да, вы должны использовать службу наблюдения за закладками: https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsINavBookmarksService#beginUpdateBatch()
https://developer.mozilla.org/en-US/Add-ons/Code_snippets/Bookmarks#Observing_changes_to_bookmarks_and_tags

Может ли дополнение изменять текст, отображаемый в строке заголовка для текущей вкладки?

ДА. Вы можете либо изменить заголовок загруженного документа. Или получите DOMWindow и измените его атрибут title. IE: document.querySelector('#main-window').setAttribute('title','rawr')

Комментарии:

1. кстати main-window , приведенный выше код на самом деле просто изменяет заголовок Windows, если вы хотите изменить заголовок элемента tab, а не этот: gBrowser.selectedTab.visibleLabel = 'rawr'