ключ background

Тип Object
Обязательный Нет
Пример
"background": {
  "scripts": ["background.js"]
}

Используйте ключ background для включения одного или нескольких фоновых сценариев и, возможно, фоновой страницы в ваше расширение.

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

Фоновые сценарии загружаются сразу при загрузке расширения и остаются загруженными до тех пор, пока расширение не будет отключено или удалено. Вы можете использовать любой API-интерфейс WebExtension в сценарии, если вы запросили необходимые права (permissions).

Дополнительную информацию см. В разделе «Справочные страницы» в статье Анатомия расширения.

Ключ background это объект, у которого есть два следующих необязательных свойства:

scripts

Массив строк, каждая из которых представляет собой путь к файлу JavaScript. Путь к этим файлам указывают относительно папки, в которой находится файл manifest.json. Это скрипты, которые будут выполняться в фоновой странице расширения.

У этих скриптов общий глобальный контекст объекта window.

Скрипты загружаются в том порядке, в котором они указаны в массиве.

Если вы указали значения с помощью свойства scripts, будет создана пустая фоновая страница, в которой будут работать все эти скрипты.

Примечание: Если вы хотите добавить скрипт из удалённого расположения с помощью тега <script> (например, <script src = "https://code.jquery.com/jquery-1.7.1.min.js">), может также понадобиться изменить значение ключа content_security_policy в файле manifest.json вашего расширения.

Примечание: В Firefox до версии 50, когда открыт отладчик, скрипты не всегда загружаются в том порядке, в котором они расположены в массиве. Чтобы обойти этот баг, можно использовать свойство page  (вместо scripts) и добавить фоновые скрипты с помощью тегов <script> в странице HTML. Этот баг починен в Firefox 50. Начиная с этой версии, скрипты всегда загружаются в том порядке, в котором они следуют в массиве.

page

Если вам нужно какое-нибудь содержимое HTML-страницы, можно определить свою фоновую страницу с помощью свойства page. Это строка, которая представляет собой путь к файлу документа HTML, заданный относительно расположения файла manifest.json. Этот файл HTML должен находиться внутри вашего расширения.

Если используется это свойство, то уже нельзя добавлять скрипты с помощью свойства scripts. Вместо этого нужно добавлять скрипты в страницу — точно таким же образом, как в обычную веб-страницу.

Ключ background также может содержать следующее необязательное свойство:

persistent

Двоичное значение (Boolean).

  • true определяет, что фоновая страница должна храниться в памяти с момента, когда загрузилось расширение или запустился браузер и до того, как расширение будет удалено или выключено, или браузер будет закрыт (то есть фоновая страница постоянна).
  • false определяет, что фоновая страница может быть выгружена из памяти во время бездействия и создана заново, когда будет нужна. Такие фоновые страницы часто называются «Страницами Событий» (Event Pages) — потому, что они загружаются в память только для того, чтобы обрабатывать события, для которых в фоновых скриптах назначены функции-обработчики. Зарегистрированные события остаются когда фоновая страница выгружена из памяти, но остальные значения сбрасываются. Если нужно хранить постоянные данные при использовании страницы событий, используйте storage API.

Примеры

  "background": {
    "scripts": ["jquery.js", "my-background.js"]
  }

Загрузит два фоновых скрипта.

  "background": {
    "page": "my-background.html"
  }

Загрузит файл фоновой страницы.

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

Update compatibility data on GitHub
КомпьютерыМобильные
ChromeEdgeFirefoxOperaSafariFirefox для Android
backgroundChrome Полная поддержка ДаEdge Полная поддержка 14Firefox Полная поддержка 48Opera Полная поддержка ДаSafari Полная поддержка 14Firefox Android Полная поддержка 48
pageChrome Полная поддержка ДаEdge Полная поддержка 14Firefox Полная поддержка 48Opera Полная поддержка ДаSafari Полная поддержка 14Firefox Android Полная поддержка 48
persistentChrome Полная поддержка ДаEdge Полная поддержка 14
Замечания
Полная поддержка 14
Замечания
Замечания The 'persistent' property is mandatory.
Firefox Частичная поддержка 48
Замечания
Частичная поддержка 48
Замечания
Замечания Only persistent pages are supported.
Замечания Before version 66, Firefox would log a warning even if the value was set to true.
Opera Полная поддержка ДаSafari Частичная поддержка 14
Замечания
Частичная поддержка 14
Замечания
Замечания Only persistent pages are supported.
Firefox Android Частичная поддержка 48
Замечания
Частичная поддержка 48
Замечания
Замечания Only persistent pages are supported.
Замечания Before version 66, Firefox would log a warning even if the value was set to true.
scriptsChrome Полная поддержка ДаEdge Полная поддержка 14Firefox Полная поддержка 48
Замечания
Полная поддержка 48
Замечания
Замечания Before Firefox 50, when the debugger is open, scripts are not always loaded in the order given in the array.
Opera Полная поддержка ДаSafari Полная поддержка 14Firefox Android Полная поддержка 48
Замечания
Полная поддержка 48
Замечания
Замечания Before Firefox 50, when the debugger is open, scripts are not always loaded in the order given in the array.

Легенда

Полная поддержка  
Полная поддержка
Частичная поддержка  
Частичная поддержка
Смотрите замечания реализации.
Смотрите замечания реализации.