--- title: JavaScript API 群 slug: Mozilla/Add-ons/WebExtensions/API tags: - WebExtensions translation_of: Mozilla/Add-ons/WebExtensions/API ---
{{AddonSidebar}}

WebExtension 用の JavaScript API は拡張機能のバックグラウンドスクリプトと、その他の拡張機能にバンドルした文書 (ブラウザーアクションページアクションポップアップやサイドバーオプションページ新規タブページを含む) で使用できます。いくつかの API は拡張機能のコンテンツスクリプトからもアクセスできます (コンテンツスクリプトガイドの表を見てください)。

もっと強力な API を使うには、拡張機能の manifest.jsonパーミッションをリクエストする必要があります。

browser 名前空間内で API にアクセスできます:

function logTabs(tabs) {
  console.log(tabs);
}

browser.tabs.query({currentWindow: true}, logTabs);

API の多くは非同期で、 {{JSxRef("Promise")}} を返します:

function logCookie(c) {
  console.log(c);
}

function logError(e) {
  console.error(e);
}

let setCookie = browser.cookies.set(
  {url: "https://developer.mozilla.org/"}
);
setCookie.then(logCookie, logError);

これは Google Chrome の拡張機能システムでは違っていて、browser の代わりに chrome 名前空間を使い、promise や非同期関数の代わりにコールバックを使っているのに注意してください。移植の助けとして、WebExtensions API の Firefox 実装は browser と promise と同様に chrome とコールバックもサポートします。Mozilla は browser と promise を使うコードが Chrome で変更なく動作する polyfill も書いています: https://github.com/mozilla/webextension-polyfill.

Firefox は chrome 名前空間の下でコールバックを使う API も実装しています。これにより Chrome 向けのコードをここに文書化された API を使って、Firefox で大部分変更なしに実行させることができます。

Microsoft Edge は browser 名前空間を使いますが、promise ベースの非同期 API はサポートされていません。Edge では当面、非同期 API はコールバックを使うのが必須です。

すべてのブラウザーがすべての API をサポートしているわけではありません: 詳しくは  JavaScript API のブラウザーサポートをご覧ください。

JavaScript API 一覧

下記の JavaScript API の完全な一覧をご覧ください:

{{LandingPageListSubpages}}