构建上下文菜单

鼠标的交替点击(通常称为右键点击)会显示上下文菜单。如需构建上下文菜单,请先向 manifest.json 文件添加 "contextMenus" 权限

manifest.json:

  "permissions": [
    "contextMenus"
  ],

(可选)如果您想在菜单项旁边显示图标,可以使用 "icons" 键。在本例中,“Global Google Search”(全球 Google 搜索)对应的菜单项扩展程序使用 16x16 的图标。

<ph type="x-smartling-placeholder">
</ph> 一个包含 16x16 图标的上下文菜单项。
一个包含 16x16 图标的上下文菜单项。

此示例的其余部分取自全球 Google 搜索上下文菜单示例,该示例提供了多个上下文菜单选项。当一个扩展程序包含多个上下文菜单时,Chrome 会自动将它们折叠为一个父级菜单,如下所示:

<ph type="x-smartling-placeholder">
</ph> 嵌套的上下文菜单。
图 4:上下文菜单和嵌套子菜单。

该示例通过在 Extension Service Worker 中调用 contextMenus.create() 展示了这种情况。子菜单项是从 locales.js 文件导入的。然后,runtime.onInstalled 会迭代它们。

service-worker.js:

const tldLocales = {
  'com.au': 'Australia',
  'com.br': 'Brazil',
  ...
}

chrome.runtime.onInstalled.addListener(async () => {
  for (let [tld, locale] of Object.entries(tldLocales)) {
    chrome.contextMenus.create({
      id: tld,
      title: locale,
      type: 'normal',
      contexts: ['selection'],
    });
  }
});