У 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 решают эту проблему в простых случаях (примитивные типы).

Расширения могут связываться с скриптами содержимого, хотя есть некоторые обертки, чтобы вы случайно не сделали что-то глупое.