#javascript #firefox #firefox-addon #firefox-addon-sdk
#javascript #firefox #firefox-addon #firefox-addon-sdk
Вопрос:
Проблема
В Firefox, когда текущая вкладка содержит страницу с закладками, мне нужно всегда видеть сведения, хранящиеся в соответствующей закладке (имя, папка, теги и т. Д.), Без единого дополнительного щелчка.
Мне нужна помощь в решении этой (казалось бы, решаемой) проблемы.
Возможные решения:
- Показывать сведения о закладках в виде текста, добавляемого в строку заголовка
- Показывать сведения о закладках с помощью элементов управления, динамически создаваемых на выделенной панели инструментов
Технические вопросы
- Возникает ли событие при изменении закладки [для текущей вкладки]? Может ли аддон реагировать на такое событие?
- Может ли дополнение изменять текст, отображаемый в строке заголовка для текущей вкладки?
- Может кто-нибудь предоставить ссылку на исходный код для простого, ~ современного аддона, который добавляет панель инструментов? Я знаю / использую строку состояния загрузки 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'