aboutsummaryrefslogtreecommitdiff
path: root/files/ja/mozilla/add-ons/webextensions/manifest.json/background/index.html
blob: 6e91ad618145c345f972ab85e4d170b0af27ef77 (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
113
---
title: background
slug: Mozilla/Add-ons/WebExtensions/manifest.json/background
tags:
  - Add-ons
  - Extensions
  - Manifest
  - Reference
  - 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><code>background</code> を使って拡張機能に 1 つ以上のバックグラウンドスクリプトや、オプションとしてバックグラウンドページを含めます。</p>

<p>バックグラウンドスクリプトは、特定のウェブページやブラウザーウィンドウとは独立した、長い期間の状態や、長い期間の操作を維持する必要があるコードを置く場所です。</p>

<p><code>persistent</code><code>false</code> と指定されている場合を除き、バックグラウンドスクリプトは拡張機能が読み込まれるとすぐに読み込まれて、拡張機能が無効化やアンインストールされるまで読み込まれたままになります。スクリプト内では、必要な <a href="/ja/docs/Mozilla/Add-ons/WebExtensions/manifest.json/permissions">permissions</a> を要求している限り、あらゆる WebExtension APIs を使用できます</p>

<p>詳しくは <a href="/ja/Add-ons/WebExtensions/Anatomy_of_a_WebExtension#Background_pages">拡張機能の中身</a>の「バックグラウンドページ」の節を見てください。</p>

<p><code>background</code> キーは次の 2 つのプロパティ(両方ともオプションです)のうち 1 つを持つオブジェクトです:</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>)、拡張機能の manifest.json で <code><a href="/ja/docs/Mozilla/Add-ons/WebExtensions/manifest.json/content_security_policy">content_security_policy</a></code> キーを変更する必要があります。</p>
    </div>

    <div class="note">
    <p><strong>注:</strong> Firefox 50 より前のバージョンにはこれに影響するバグがあることに注意してください。Firefox のデバッガーが開いているときは、必ずしも配列内の出現順でスクリプトが読み込まれるとは限りません。このバグに対処するには、<code>"page"</code> プロパティを使い、そのページから <code>&lt;script&gt;</code> タグによってバックグラウンドスクリプトを読み込んでください。このバグは Firefox 50 で修正され、それ以降は常に配列内の出現順でスクリプトが読み込まれます。</p>
    </div>
   </td>
  </tr>
  <tr>
   <td><code>"page"</code></td>
   <td>
    <p>もしバックグラウンド ページに何か内容を持たせたい場合、そのページを <code>"page"</code> により指定することができます。 manifest.json から拡張機能の中に含まれるHTMLドキュメントを参照するためのパス文字列の <code>String</code> を指定します。</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> を指定すると、バックグラウンドページはアイドル状態の時にメモリー上からアンロードされ、必要に応じて再生成されます。このようなバックグラウンドページは、リスナーを登録したイベントを処理するためだけにメモリー上に読み込まれるため、イベントページとも呼ばれます。バックグラウンドページがメモリ上からアンロードされていても、リスナーの登録状態は永続化されますが、他の値は永続化されません。イベントページにおいてデータを永続化したい場合は、<a href="https://wiki.developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/storage">storage API</a>を使う必要があります。</li>
    </ul>
   </td>
  </tr>
 </tbody>
</table>

<h2 id="Example" name="Example"></h2>

<pre class="brush: json no-line-numbers">  "background": {
    "scripts": ["jquery.js", "my-background.js"]
  }</pre>

<p>2つのバックグラウンドスクリプトを読み込みます。</p>

<pre class="brush: json">  "background": {
    "page": "my-background.html"
  }</pre>

<p>カスタムのバックグラウンドページを読み込みます。</p>

<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザ実装状況</h2>

<p>{{Compat("webextensions.manifest.background", 10)}}</p>