aboutsummaryrefslogtreecommitdiff
path: root/files/ru/mozilla/add-ons/webextensions/manifest.json/background/index.html
blob: ca9af7f5f50d861502a1a0e9aa7614a141ce7264 (plain)
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>&lt;script&gt;</code> (например, <code>&lt;script src = "https://code.jquery.com/jquery-1.7.1.min.js"&gt;</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>&lt;script&gt;</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}}</p>