options_ui

类型 对象
强制
清单版本 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 和 后台脚本 之间 共享 数据或函数,可以使用 Window 的引用直接进行,方法是使用 extension.getBackgroundPage() 获取后台脚本的引用,或者使用 extension.getViews() 获取扩展中运行的任何页面的 Window 引用。或者,您可以使用 runtime.sendMessage()runtime.onMessageruntime.connect() 在选项页面的 JavaScript 和后台脚本之间进行通信。后者(或 runtime.Port 等效项)也可以用于在您的 后台脚本内容脚本 之间共享选项。

一般来说,您需要使用 storage API 将在选项页面上更改的选项存储到 storage.sync(如果您希望设置在用户登录的所有浏览器实例中同步)或 storage.local(如果设置是当前机器/配置文件的本地设置)。如果您这样做,并且您的 后台脚本(或 内容脚本)需要知道更改,您的脚本可能会选择向 storage.onChanged 添加一个侦听器。

语法

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

名称 类型 描述
browser_style
可选
已弃用 在清单 V3 中。
布尔值

可选,默认值为

  • true 在清单 V2 和 Firefox 115 之前的清单 V3 中。
  • false 在 Firefox 115 的清单 V3 中。

不要将 browser_style 设置为 true:它在 Firefox 118 的清单 V3 中不受支持。请参阅 清单 V3 中 browser_style 的迁移

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

open_in_tab
可选
布尔值
  • 如果为 false,选项页面将在浏览器的附加组件管理器中打开。
  • 如果为 true,选项页面将在普通浏览器选项卡中打开。

默认值为 false

page 字符串

强制。

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

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

示例

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

浏览器兼容性

BCD 表格仅在浏览器中加载

另请参阅