menus.refresh()
刷新正在显示的菜单。
更新浏览器当前显示的菜单中的扩展菜单项,包括自菜单显示以来所做的更改。如果菜单未显示,则无效。重新构建已显示的菜单是一项代价高昂的操作,仅在必要时调用此方法。
这通常会在 menus.onShown
事件处理程序内部调用,在处理程序对菜单进行了任何更新之后。
Firefox 通过 contextMenus
命名空间以及 menus
命名空间提供此函数。
这是一个返回 Promise
的异步函数。
语法
js
browser.menus.refresh()
参数
无。
返回值
一个 Promise
,它在没有参数的情况下完成。
浏览器兼容性
BCD 表格仅在浏览器中加载
示例
此示例侦听上下文菜单在链接上显示,然后使用链接的主机名更新 openLabelledId
菜单项
js
function updateMenuItem(linkHostname) {
browser.menus.update(openLabelledId, {
title: `Open (${linkHostname})`,
});
browser.menus.refresh();
}
browser.menus.onShown.addListener((info) => {
if (!info.linkUrl) {
return;
}
let linkElement = document.createElement("a");
linkElement.href = info.linkUrl;
updateMenuItem(linkElement.hostname);
});