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 },
);
有关更多详细信息,请参阅 这篇博文。
浏览器兼容性
加载中…