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 表仅在浏览器中加载