menus.overrideContext()

隐藏所有默认的 Firefox 菜单项,以支持提供自定义上下文菜单 UI。

overrideContext 方法将导致显示来自此扩展程序的匹配菜单项,而不是默认菜单。此方法应从 contextmenu DOM 事件处理程序调用,并且仅适用于在此事件之后打开的菜单。

此接口需要 menus.overrideContext 权限

语法

js
browser.menus.overrideContext(
  contextOptions // object
)

参数

contextOptions

object. 上下文菜单覆盖方式选项。

showDefaults 可选

boolean. 是否还包括菜单中的默认菜单项。

context 可选

string. 要覆盖的 ContextType,以允许菜单中来自其他扩展的菜单项。目前仅支持 'bookmark''tab'showDefaults 无法与此选项一起使用。

bookmarkId 可选

string. 当 context 为 'bookmark' 时需要。需要“书签”权限。

tabId 可选

integer. 当 context 为 'tab' 时需要。需要“标签页”权限。

示例

在您的自定义 UI 上打开标签页上下文菜单,在本例中

js
document.addEventListener(
  "contextmenu",
  (event) => {
    const foo = event.target.closest(".foo");
    if (foo) {
      // When the context menu is opened on an element with the foo class
      // set the context to "opening a tab context menu".
      browser.menus.overrideContext({
        context: "tab",
        tabId: parseInt(foo.dataset.tabId),
      });
    }
  },
  { capture: true },
);

有关更多详细信息,请参见 此博客文章

浏览器兼容性

BCD 表仅在浏览器中加载