Type | Object |
---|---|
Mandatory | No |
Example | "options_ui": { "page": "options/options.html" } |
Use the options_ui
key to define an options page for your extension.
The options page contains settings for the extension. The user can access it from the browser's add-ons manager, and you can open it from within your extension using runtime.openOptionsPage()
.
You specify options_ui
as a path to an HTML file packaged with your extension. The HTML file can include CSS and JavaScript files, just like a normal web page. Unlike a normal page, though, the JavaScript can use all the WebExtension APIs that the extension has permissions for. However, it runs in a different scope than your background scripts.
If you want to share data or functions between the JavaScript on your options page and your background script(s), you can do so directly by obtaining a reference to the Window of your background scripts by using extension.getBackgroundPage()
, or a reference to the Window
of any of the pages running within your extension with extension.getViews()
. Alternately, you can communicate between the JavaScript for your options page and your background script(s) using runtime.sendMessage()
, runtime.onMessage
, or runtime.connect()
.
The latter (or runtime.Port
equivalents) can also be used to share options between your background script(s) and your content script(s).
In general, you will want to store options changed on option pages using the storage API to either storage.sync()
(if you want the settings synchronized across all instances of that browser that the user is logged into), or storage.local()
(if the settings are local to the current machine/profile). If you do so and your background script(s) (or content script(s)) need to know about the change, your script(s) might choose to add a listener to storage.onChanged
.
The options_ui
key is an object with the following contents:
Name | Type | Description |
---|---|---|
browser_style Optional | Boolean | Defaults to Use this to include a stylesheet in your page that will make it look consistent with the browser's UI and with other extensions that use the In Firefox, the stylesheet can be seen at The Firefox Style Guide describes the classes you can apply to elements in the popup in order to get particular styles. |
open_in_tab Optional | Boolean | Defaults to If |
page | String | Mandatory. The path to an HTML file containing the specification of your options page. The path is relative to the location of |
"options_ui": { "page": "options/options.html" }
Desktop | Mobile | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | WebView Android | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | |
options_ui |
40 |
79 |
48 |
? |
27 |
14 |
? |
? |
57 |
? |
? |
? |
browser_style |
40 |
79 |
55 |
? |
27 |
No |
? |
? |
57 |
? |
? |
? |
open_in_tab |
40 |
79 |
48 |
? |
No
Options pages are always opened in a separate browser tab.
|
No
Options pages are always opened in a separate browser tab.
|
? |
? |
57 |
? |
? |
? |
page |
40 |
79 |
48 |
? |
27 |
14 |
? |
? |
57 |
? |
? |
? |
© 2005–2021 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/options_ui