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' 时必需。需要“bookmark”权限。

tabId 可选

integer。当 context 为 'tab' 时必需。需要“tabs”权限。

示例

在此情况下,在自定义 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, 10),
      });
    }
  },
  { capture: true },
);

有关更多详细信息,请参阅 这篇博文

浏览器兼容性