Spec-Zone.ru › Web Extensions

options_ui

Тип Object
Обязательно Нет
Версия манифеста 2 или выше
Пример
"options_ui": {
  "page": "options/options.html"
}

Используйте ключ options_ui для определения страницы настроек (страница настроек) для вашего расширения.

Страница настроек содержит параметры расширения. Пользователь может получить к ней доступ в менеджере дополнений браузера, а вы можете открыть её изнутри расширения, используя runtime.openOptionsPage().

Вы указываете options_ui как путь к HTML-файлу, входящему в состав вашего расширения. HTML-файл может содержать CSS- и JavaScript-файлы, как и обычная веб-страница. Однако, в отличие от обычной страницы, JavaScript может использовать все API расширений WebExtension, для которых у расширения есть разрешения. Однако, он выполняется в другом контексте, чем ваши скрипты фона.

Если вы хотите обмениваться данными или функциями между JavaScript на вашей странице настроек и вашими скриптами фона, вы можете сделать это напрямую, получив ссылку на объект Window ваших скриптов фона с помощью extension.getBackgroundPage(), или ссылку на объект Window любой из страниц, работающих внутри вашего расширения, с помощью extension.getViews(). В качестве альтернативы, вы можете обмениваться данными между JavaScript вашей страницы настроек и скриптами фона, используя runtime.sendMessage(), runtime.onMessage или runtime.connect(). Последние (или эквиваленты runtime.Port) также могут использоваться для обмена настройками между вашими скриптами фона и вашими скриптами контента.

В целом, вы захотите сохранять изменения настроек на страницах настроек, используя API хранения, чтобы либо storage.sync() (если вы хотите, чтобы настройки синхронизировались на всех экземплярах браузера, в которые пользователь вошёл), либо storage.local() (если настройки локальны для текущей машины/профиля). Если вы это сделаете, и вашим скриптам фона (или скриптам контента) необходимо узнать об изменении, ваши скрипты могут добавить слушатель к storage.onChanged.

Синтаксис

Ключ options_ui — это объект со следующим содержимым:

Имя Тип Описание
browser_style
Необязательно
Boolean

По умолчанию true.

Используйте его для включения в вашу страницу таблицы стилей, которые сделают её согласованной с пользовательским интерфейсом браузера и с другими расширениями, которые используют свойство browser_style. Хотя по умолчанию это true, рекомендуется включать это свойство.

В Firefox таблицу стилей можно найти по адресу chrome://browser/content/extension.css, или chrome://browser/content/extension-mac.css на macOS. При настройке размеров имейте в виду, что этот стиль сейчас устанавливает box-sizing: border-box (см. box-sizing).

В Руководстве по стилям Firefox описаны классы, которые можно применять к элементам всплывающего окна, чтобы получить определенные стили.

open_in_tab
Необязательно
Boolean

По умолчанию false.

Если true, страница настроек откроется в обычной вкладке браузера, а не будет интегрирована в менеджер дополнений браузера.

page String

Обязательно.

Путь к HTML-файлу, содержащему описание вашей страницы настроек.

Путь относителен к расположению самого manifest.json.

Пример

"options_ui": {
  "page": "options/options.html"
}

Совместимость с браузерами

Рабочие столы Мобильные устройства
Chrome Edge Firefox Internet Explorer Opera Safari WebView Android Chrome Android Firefox for Android Opera Android Safari на IOS Samsung Internet
options_ui 40 79 48 ? 27 14 ? ? 57 ? 15 ?
browser_style 40 79 55 ? 27 Нет ? ? 57 ? Нет ?
open_in_tab 40 79 48 ?
НетСтраницы настроек всегда открываются в отдельной вкладке браузера.
НетСтраницы настроек всегда открываются в отдельной вкладке браузера.
? ? 57 ?
НетСтраницы настроек всегда открываются в отдельной вкладке браузера.
?
page 40 79 48 ? 27 14 ? ? 57 ? 15 ?

См. также

  • options_page Устаревший
  • Стили браузера
  • Страницы настроек

© 2005–2023 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/options_ui

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API