menus.refresh()

刷新正在显示的菜单。

更新浏览器当前显示的菜单中的扩展菜单项,包括自菜单显示以来所做的更改。如果菜单未显示,则无效。重新构建已显示的菜单是一项耗时的操作,仅在必要时调用此方法。

这通常会在 menus.onShown 事件处理程序中调用,在该处理程序更新菜单后。

Firefox 可以通过 contextMenus 命名空间以及 menus 命名空间来访问此函数。

这是一个异步函数,返回一个 Promise

语法

js
browser.menus.refresh()

参数

无。

返回值

一个 Promise,它在没有参数的情况下被 fulfilled。

示例

此示例监听上下文菜单在链接上显示,然后使用链接的主机名更新 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);
});

扩展程序示例

浏览器兼容性