background

種類 Object
必須 いいえ
"background": {
  "scripts": ["background.js"]
}

background を使って拡張機能に 1 つ以上のバックグラウンドスクリプトや、オプションとしてバックグラウンドページを含めます。

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

persistentfalse と指定されている場合を除き、バックグラウンドスクリプトは拡張機能が読み込まれるとすぐに読み込まれて、拡張機能が無効化やアンインストールされるまで読み込まれたままになります。スクリプト内では、必要な permissions を要求している限り、あらゆる WebExtension APIs を使用できます

詳しくは 拡張機能の中身の「バックグラウンドページ」の節を見てください。

background キーは次の 2 つのプロパティ(両方ともオプションです)のうち 1 つを持つオブジェクトです:

"scripts"

文字列配列であり、各要素は JavaScript ファイルへのパスです。パスは manifest.json を基準にした相対パスです。これらは、拡張機能に含まれるバックグラウンドスクリプトです。

これらのスクリプトは、同じグローバル window を共有します。

これらのスクリプトは、配列内の出現順で読み込まれます。

"scripts" を指定したときは、スクリプトを実行するための空のバックグラウンドページが作られます。

注: <script> タグを使って外部からスクリプトを取り込む場合 (例: <script src = "https://code.jquery.com/jquery-1.7.1.min.js">)、拡張機能の manifest.json で content_security_policy キーを変更する必要があります。

注: Firefox 50 より前のバージョンにはこれに影響するバグがあることに注意してください。Firefox のデバッガーが開いているときは、必ずしも配列内の出現順でスクリプトが読み込まれるとは限りません。このバグに対処するには、"page" プロパティを使い、そのページから <script> タグによってバックグラウンドスクリプトを読み込んでください。このバグは Firefox 50 で修正され、それ以降は常に配列内の出現順でスクリプトが読み込まれます。

"page"

もしバックグラウンド ページに何か内容を持たせたい場合、そのページを "page" により指定することができます。 manifest.json から拡張機能の中に含まれるHTMLドキュメントを参照するためのパス文字列の String を指定します。

このプロパティを使うときは、"scripts" を使ってバックグラウンドスクリプトを指定することはできませんが、通常のウェブページと同じように、バックグラウンドページ内からスクリプトを読み込むことができます。

background は以下の追加のキーを含むこともできます:

persistent

Boolean の値。

  • true を指定すると、拡張機能が読み込まれるかブラウザーが起動した時から、拡張機能の削除、無効化、もしくはブラウザーが終了するまでの間、バックグラウンドページがメモリー上に保持され続けます(つまり、バックグラウンドページが永続化されます)。
  • false を指定すると、バックグラウンドページはアイドル状態の時にメモリー上からアンロードされ、必要に応じて再生成されます。このようなバックグラウンドページは、リスナーを登録したイベントを処理するためだけにメモリー上に読み込まれるため、イベントページとも呼ばれます。バックグラウンドページがメモリ上からアンロードされていても、リスナーの登録状態は永続化されますが、他の値は永続化されません。イベントページにおいてデータを永続化したい場合は、storage APIを使う必要があります。

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

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

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

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

ブラウザ実装状況

Update compatibility data on GitHub
デスクトップモバイル
ChromeEdgeFirefoxOperaSafariAndroid 版 Firefox
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.

凡例

完全対応  
完全対応
部分対応  
部分対応
実装ノートを参照してください。
実装ノートを参照してください。