ключ background
===============

|  |  |
| --- | --- |
| Тип | `Object` |
| Обязательный | Нет |
| Пример | 
```json
"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 (en-US).
 |

Примеры
-------


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


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


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


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

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

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.