1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
|
---
title: ключ background
slug: Mozilla/Add-ons/WebExtensions/manifest.json/background
tags:
- WebExtensions
- Веб-расширения
- Дополнения
- Манифест
- Расширения
translation_of: Mozilla/Add-ons/WebExtensions/manifest.json/background
---
<div>{{AddonSidebar}}</div>
<table class="fullwidth-table standard-table">
<tbody>
<tr>
<th scope="row" style="width: 30%;">Тип</th>
<td><code>Object</code></td>
</tr>
<tr>
<th scope="row">Обязательный</th>
<td>Нет</td>
</tr>
<tr>
<th scope="row">Пример</th>
<td>
<pre class="brush: json no-line-numbers">
"background": {
"scripts": ["background.js"]
}</pre>
</td>
</tr>
</tbody>
</table>
<p><span id="result_box" lang="ru"><span>Используйте ключ <code>background</code> для включения одного или нескольких фоновых сценариев </span></span><span lang="ru"><span>и, возможно, фоновой страницы в ваше расширение.</span></span></p>
<p><span id="result_box" lang="ru"><span>Фоновые сценарии </span></span>—<span lang="ru"><span> это место для размещения кода, который должен поддерживать долгосрочное состояние или выполнять долгосрочные операции, независимо от времени жизни каких-либо конкретных веб-страниц или окон браузера.</span></span></p>
<p><span id="result_box" lang="ru"><span>Фоновые сценарии загружаются сразу при загрузке расширения и остаются загруженными до тех пор, пока расширение не будет отключено или удалено.</span> <span>Вы можете использовать любой API-интерфейс WebExtension в сценарии, если вы запросили необходимые</span></span> <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/permissions">права (permissions)</a>.</p>
<p><span id="result_box" lang="ru"><span>Дополнительную информацию см. В разделе «Справочные страницы»</span></span> в статье <a href="/ru/Add-ons/WebExtensions/Anatomy_of_a_WebExtension#Background_pages">Анатомия расширения</a>.</p>
<p>Ключ <code>background</code> это объект, у которого есть два следующих необязательных свойства:</p>
<table class="standard-table">
<tbody>
<tr>
<td><code>scripts</code></td>
<td>
<p>Массив строк, каждая из которых представляет собой путь к файлу JavaScript. Путь к этим файлам указывают относительно папки, в которой находится файл manifest.json. Это скрипты, которые будут выполняться в фоновой странице расширения.</p>
<p>У этих скриптов общий глобальный контекст объекта <code>window</code>.</p>
<p>Скрипты загружаются в том порядке, в котором они указаны в массиве.</p>
<p>Если вы указали значения с помощью свойства <code>scripts</code>, будет создана пустая фоновая страница, в которой будут работать все эти скрипты.</p>
<div class="note">
<p><strong>Примечание:</strong> Если вы хотите добавить скрипт из удалённого расположения с помощью тега <code><script></code> (например, <code><script src = "https://code.jquery.com/jquery-1.7.1.min.js"></code>), может также понадобиться изменить значение ключа <code><a href="/ru/docs/Mozilla/Add-ons/WebExtensions/manifest.json/content_security_policy">content_security_policy</a></code> в файле manifest.json вашего расширения.</p>
</div>
<div class="note">
<p><strong>Примечание:</strong> В Firefox до версии 50, когда открыт отладчик, скрипты не всегда загружаются в том порядке, в котором они расположены в массиве. Чтобы обойти этот баг, можно использовать свойство <code>page</code> (вместо <code>scripts</code>) и добавить фоновые скрипты с помощью тегов <code><script></code> в странице HTML. Этот баг починен в Firefox 50. Начиная с этой версии, скрипты всегда загружаются в том порядке, в котором они следуют в массиве.</p>
</div>
</td>
</tr>
<tr>
<td><code>page</code></td>
<td>
<p>Если вам нужно какое-нибудь содержимое HTML-страницы, можно определить свою фоновую страницу с помощью свойства <code>page</code>. Это строка, которая представляет собой путь к файлу документа HTML, заданный относительно расположения файла manifest.json. Этот файл HTML должен находиться внутри вашего расширения.</p>
<p>Если используется это свойство, то уже нельзя добавлять скрипты с помощью свойства <code>scripts</code>. Вместо этого нужно добавлять скрипты в страницу — точно таким же образом, как в обычную веб-страницу.</p>
</td>
</tr>
</tbody>
</table>
<p>Ключ <code>background</code> также может содержать следующее необязательное свойство:</p>
<table class="standard-table">
<tbody>
<tr>
<td><code>persistent</code></td>
<td>
<p>Двоичное значение (<code>Boolean</code>).</p>
<ul>
<li><code>true</code> определяет, что фоновая страница должна храниться в памяти с момента, когда загрузилось расширение или запустился браузер и до того, как расширение будет удалено или выключено, или браузер будет закрыт (то есть фоновая страница постоянна).</li>
<li><code>false</code> определяет, что фоновая страница может быть выгружена из памяти во время бездействия и создана заново, когда будет нужна. Такие фоновые страницы часто называются «Страницами Событий» (Event Pages) — потому, что они загружаются в память только для того, чтобы обрабатывать события, для которых в фоновых скриптах назначены функции-обработчики. Зарегистрированные события остаются когда фоновая страница выгружена из памяти, но остальные значения сбрасываются. Если нужно хранить постоянные данные при использовании страницы событий, используйте <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/storage">storage API</a>.</li>
</ul>
</td>
</tr>
</tbody>
</table>
<h2 id="Примеры">Примеры</h2>
<pre class="brush: json no-line-numbers"> "background": {
"scripts": ["jquery.js", "my-background.js"]
}</pre>
<p>Загрузит два фоновых скрипта.</p>
<pre class="brush: json"> "background": {
"page": "my-background.html"
}</pre>
<p>Загрузит файл фоновой страницы.</p>
<h2 id="Совместимость_с_браузерами">Совместимость с браузерами</h2>
<p>{{Compat("webextensions.manifest.background", 10)}}</p>
|