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);
});

扩展示例