options_ui

类型 Object
必填
Manifest 版本 2 或更高
示例
json
"options_ui": {
  "page": "options/options.html"
}

使用 options_ui 键为您的扩展定义一个 选项页面。您可以使用此页面让用户修改您扩展的设置。

用户打开页面的方式取决于浏览器,也取决于 open_in_tab 设置。您的扩展也可以使用 runtime.openOptionsPage() 打开页面。

您可以将 options_ui 指定为打包在您的扩展中的 HTML 文件的路径。HTML 文件可以包含 CSS 和 JavaScript 文件,就像普通网页一样。但与普通页面不同的是,JavaScript 可以使用扩展具有 权限 的所有 WebExtension API。然而,它的作用域与您的后台脚本不同。

如果您想在 **选项页面** 的 JavaScript 和您的 **后台脚本** 之间 **共享** 数据或函数,您可以通过使用 extension.getBackgroundPage() 获取后台脚本的 Window 对象引用,或者通过 extension.getViews() 获取您的扩展中运行的任何页面的 Window 对象引用来直接实现。或者,您可以使用 runtime.sendMessage()runtime.onMessageruntime.connect() 在选项页面的 JavaScript 和您的后台脚本之间进行通信。后者(或 runtime.Port 的等价物)也可以用来在您的 后台脚本 和您的 **内容脚本** 之间共享选项。

通常,您希望使用 storage API 存储在选项页面中更改的选项,可以选择 storage.sync(如果您希望设置在用户登录的所有浏览器实例之间同步),或者 storage.local(如果设置仅限于当前机器/配置文件)。如果您这样做,并且您的 后台脚本(或 内容脚本)需要了解更改,您的脚本可以选择添加一个侦听器到 storage.onChanged

语法

options_ui 键是一个包含以下内容的 *对象*:

名称 类型 描述
browser_style
可选
已弃用 在 Manifest V3 中。
Boolean

可选,默认为

  • true(Manifest V2 及 Firefox 115 之前的 Manifest V3)。
  • false(Firefox 115 及之后的 Manifest V3)。

请勿将 browser_style 设置为 true:从 Firefox 118 开始,它在 Manifest V3 中不受支持。请参阅 browser_style 的 Manifest V3 迁移

在 Firefox 中,可以使用 chrome://browser/content/extension.css 或 macOS 上的 chrome://browser/content/extension-mac.css 查看样式表。在设置尺寸时,请注意此样式表设置了 box-sizing: border-box(请参阅 box-sizing)。

open_in_tab
可选
Boolean
  • 如果为 false,则选项页面将在浏览器的附加组件管理器中打开。
  • 如果为 true,则选项页面将在一个普通浏览器标签页中打开。

默认为 false

page String

必需。

包含您的选项页面规范的 HTML 文件的路径。

路径相对于 manifest.json 本身的位置。

示例

json
"options_ui": {
  "page": "options/options.html"
}

浏览器兼容性

另见