manifest.json 是所有採用 WebExtension API 的擴充功能中、唯一一個必須包含的檔案。

你可透過 manifest.json 為擴充功能指定名稱(name)、版本(version)這類的基本元資料(metadata),也可指定擴充功能的一些相關功能,例如像是背景腳本(background scripts)、內容腳本(content scripts)、瀏覽器動作(browser actions)等等。

這是個採用 JSON 格式的檔案,但有個例外:它可接受含有 "//" 這種格式的註解文字。

manifest.json 可採用的鍵值如下所列:

 

"manifest_version""version" 和 "name" 是一定要設定的鍵值。另外,如果有設定 "_locales" directory ,就一定要設定 "default_locale" ,否則就是這兩個鍵值都不做設定。 Google Chrome, 並不支援 "applications" ,但針對 Firefox 48 之前及 Android 的版本,則必須設置這個鍵值。

你可透過擴充功能中的 JavaScript,藉由 runtime.getManifest() 這個函式來存取擴充功能裡的 manifest :

browser.runtime.getManifest().version;

範例

以下程式碼顯示的是一般 manifest 鍵值的基本語法。請注意,這個範例並不是讓你用來直接複製貼上的,你必須根據所開發的擴充功能,填入相應的鍵值、關於擴充功能的完整範例,請參見 擴充功能範例

{
  "applications": {
    "gecko": {
      "id": "addon@example.com",
      "strict_min_version": "42.0"
    }
  },

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

  "browser_action": {
    "default_icon": {
      "19": "button/geo-19.png",
      "38": "button/geo-38.png"
    },
    "default_title": "Whereami?",
    "default_popup": "popup/geo.html"
  },

  "commands": {
    "toggle-feature": {
      "suggested_key": {
        "default": "Ctrl+Shift+Y",
        "linux": "Ctrl+Shift+U"
      },
      "description": "Send a 'toggle-feature' event"
    }
  },

  "content_security_policy": "script-src 'self' https://example.com; object-src 'self'",

  "content_scripts": [
    {
      "exclude_matches": ["*://developer.mozilla.org/*"],
      "matches": ["*://*.mozilla.org/*"],
      "js": ["borderify.js"]
    }
  ],

  "default_locale": "en",

  "description": "...",

  "icons": {
    "48": "icon.png",
    "96": "icon@2x.png"
  },

  "manifest_version": 2,

  "name": "...",

  "page_action": {
    "default_icon": {
      "19": "button/geo-19.png",
      "38": "button/geo-38.png"
    },
    "default_title": "Whereami?",
    "default_popup": "popup/geo.html"
  },

  "permissions": ["webNavigation"],

  "version": "0.1",

  "web_accessible_resources": ["images/my-image.png"]
}

瀏覽器相容性

若想對所有的 manifest 鍵值及其子健有個完整的概念,可參見 完整 manifest.json 瀏覽器相容表

Update compatibility data on GitHub
DesktopMobile
ChromeEdgeFirefoxOperaFirefox for Android
authorChrome Full support YesEdge Full support 14
Notes
Full support 14
Notes
Notes This key is mandatory in Microsoft Edge.
Firefox Full support 52Opera Full support YesFirefox Android Full support 52
backgroundChrome Full support YesEdge Full support 14Firefox Full support 48Opera Full support YesFirefox Android Full support 48
browser_actionChrome Full support Yes
Notes
Full support Yes
Notes
Notes If an extension defines a browser action, it is not allowed to define a page action as well.
Edge Full support 14Firefox Full support 48Opera Full support Yes
Notes
Full support Yes
Notes
Notes If an extension defines a browser action, it is not allowed to define a page action as well.
Firefox Android Full support 55
browser_specific_settingsChrome No support NoEdge Full support 15Firefox Full support 48
Full support 48
Full support 42
Notes Alternate Name
Notes Mandatory before Firefox 48.
Alternate Name Uses the non-standard name: applications
Opera No support NoFirefox Android Full support 48
Full support 48
Full support 42
Notes Alternate Name
Notes Mandatory before Firefox 48.
Alternate Name Uses the non-standard name: applications
chrome_settings_overridesChrome Full support YesEdge No support NoFirefox Full support 55Opera No support NoFirefox Android No support No
chrome_url_overridesChrome Full support YesEdge No support NoFirefox Full support 54Opera No support NoFirefox Android No support No
commandsChrome Full support YesEdge No support NoFirefox Full support 48Opera Full support YesFirefox Android No support No
content_scriptsChrome Full support Yes
Notes
Full support Yes
Notes
Notes Content scripts are not applied to tabs already open when the extension is loaded.
Edge Full support 14Firefox Full support 48Opera Full support Yes
Notes
Full support Yes
Notes
Notes Content scripts are not applied to tabs already open when the extension is loaded.
Firefox Android Full support 48
content_security_policyChrome Full support YesEdge Full support 14
Notes
Full support 14
Notes
Notes Only the default content security policy is supported: "script-src 'self'; object-src 'self';".
Firefox Full support 48
Notes
Full support 48
Notes
Notes Firefox does not support 'http://127.0.0.1' or 'http://localhost' as script sources: they must be served over HTTPS.
Opera Full support YesFirefox Android Full support 48
Notes
Full support 48
Notes
Notes Firefox does not support 'http://127.0.0.1' or 'http://localhost' as script sources: they must be served over HTTPS.
default_localeChrome Full support YesEdge Full support 14Firefox Full support 48Opera Full support YesFirefox Android Full support 48
descriptionChrome Full support YesEdge Full support 14Firefox Full support 48Opera Full support YesFirefox Android Full support 48
developerChrome No support NoEdge No support NoFirefox Full support 52Opera Full support YesFirefox Android Full support 52
devtools_pageChrome Full support YesEdge No support NoFirefox Full support 54Opera Full support YesFirefox Android No support No
externally_connectableChrome Full support YesEdge No support NoFirefox No support No
Notes
No support No
Notes
Notes See bug 1319168.
Opera Full support YesFirefox Android No support No
homepage_urlChrome Full support YesEdge No support NoFirefox Full support 48Opera Full support YesFirefox Android Full support 48
iconsChrome Full support YesEdge Full support 14Firefox Full support 48Opera Full support YesFirefox Android Full support 48
incognitoChrome Full support YesEdge Full support YesFirefox Full support 48Opera Full support YesFirefox Android Full support 48
manifest_versionChrome Full support 4Edge Full support 14Firefox Full support 48Opera Full support 15Firefox Android Full support 48
nameChrome Full support YesEdge Full support 14Firefox Full support 48Opera Full support YesFirefox Android Full support 48
offline_enabledChrome Full support YesEdge No support NoFirefox No support NoOpera Full support YesFirefox Android No support No
omniboxChrome Full support YesEdge No support NoFirefox Full support 52Opera Full support YesFirefox Android No support No
optional_permissionsChrome Full support YesEdge No support NoFirefox Full support 55Opera Full support YesFirefox Android Full support 55
options_page
Deprecated
Chrome Full support YesEdge Full support 14Firefox No support NoOpera Full support 15Firefox Android No support No
options_uiChrome Full support 40Edge No support NoFirefox Full support 48Opera Full support 27Firefox Android Full support 57
page_actionChrome Full support Yes
Notes
Full support Yes
Notes
Notes If an extension defines a page action, it is not allowed to define a browser action as well.
Full support 49
Notes
Notes Since Chrome 49, page actions are displayed on the toolbar, rather than in the address bar.
Edge Full support 14Firefox Full support 48Opera Full support Yes
Notes
Full support Yes
Notes
Notes If an extension defines a page action, it is not allowed to define a browser action as well.
Firefox Android Full support Yes
permissionsChrome Full support YesEdge Full support 14Firefox Full support 48Opera Full support YesFirefox Android Full support 48
protocol_handlersChrome No support NoEdge No support NoFirefox Full support 54Opera No support NoFirefox Android Full support 54
short_nameChrome Full support YesEdge Full support 14Firefox Full support 48Opera Full support YesFirefox Android Full support 48
sidebar_actionChrome No support NoEdge No support NoFirefox Full support 54Opera Full support 30Firefox Android No support No
themeChrome Full support YesEdge No support NoFirefox Full support 55Opera No support NoFirefox Android No support No
versionChrome Full support Yes
Notes
Full support Yes
Notes
Notes Valid Chrome versions are a subset of valid Firefox versions.
Edge Full support 14Firefox Full support 48Opera Full support YesFirefox Android Full support 48
version_nameChrome Full support YesEdge No support NoFirefox No support NoOpera Full support YesFirefox Android No support No
web_accessible_resourcesChrome Full support YesEdge Full support 14Firefox Full support 48Opera Full support YesFirefox Android Full support 48

Legend

Full support  
Full support
No support  
No support
Deprecated. Not for use in new websites.
Deprecated. Not for use in new websites.
See implementation notes.
See implementation notes.
Uses a non-standard name.
Uses a non-standard name.

文件標籤與貢獻者

此頁面的貢獻者: mdnwebdocs-bot, landylan, wbamberg, ExE-Boss
最近更新: mdnwebdocs-bot,