У Firefox есть что-то похожее на концепцию "справочной страницы"?
Я работал с расширениями Chrome, которые имеют так называемую справочную страницу - страницу html, которая загружается в фоновом режиме один раз в окне браузера. Вы можете сохранить там некоторые переменные javascript, получить доступ к собственному локальному ресурсу расширения, связать назад и заставить с помощью скриптов контента (скрипты, вводимые на страницы).
Есть ли что-то подобное в Firefox и как его использовать для перечисленных выше задач?
Ответы
Ответ 1
Если вы используете (относительно) новый Add-On SDK, то основной файл javascript, находящийся в вашем каталоге lib, эквивалентен фоновой странице расширения Chrome - постоянному script, который работает в фоновом режиме и создает/создает/вставляет панели, виджеты и скрипты содержимого.
Относительно ваших конкретных запросов:
1. localStorage: Надстройки в Firefox не могут напрямую обращаться к локальному хранилищу. Однако вы можете использовать simple-storage для хранения данных, похожих на localStorage.
2. Коммуникация с контентом script: Надстройки могут взаимодействовать с сценариями контента, используя port или postMessage.
Ответ 2
С точки зрения традиционного расширения Firefox, сам браузер является еще одним окном, содержащим документ, хотя это документ XUL, а не документ HTML. Таким образом, вы можете хранить переменные per-window, хотя вы должны быть осторожны, чтобы не перезаписывать другие переменные расширения, что обычно означает объявление объекта верхнего уровня и добавление всех ваших переменных в качестве свойств этого объекта.
Обмен переменными между окнами был немного сложнее, но, к счастью, модули JavaScript решают эту проблему в простых случаях (примитивные типы).
Расширения могут связываться с скриптами содержимого, хотя есть некоторые обертки, чтобы вы случайно не сделали что-то глупое.