chrome.contextMenus

Description

使用 chrome.contextMenus API 将项目添加到 Google Chrome 的上下文菜单。您可以选择添加上下文菜单的对象类型,例如图像、超链接和页面。

Permissions

contextMenus

# Usage(用法)

上下文菜单项可以出现在任何文档(或文档中的框架)中,即使是那些带有 file:// 或 chrome:// URL 的。要控制您的项目可以出现在哪些文档中,请在调用 create()update() 方法时指定 documentUrlPatterns 字段。

您可以根据需要创建任意数量的上下文菜单项,但如果您的扩展程序中的多个项同时可见,Google Chrome 浏览器会自动将它们折叠到一个父菜单中。

# Manifest(清单)

您必须在扩展的清单中声明“contextMenus”权限才能使用 API。此外,您应该指定一个 16x16 像素的图标以显示在您的菜单项旁边。例如:

{
  "name": "My extension",
  ...
  "permissions": [
    "contextMenus"
  ],
  "icons": {
    "16": "icon-bitty.png",
    "48": "icon-small.png",
    "128": "icon-large.png"
  },
  ...
}

# Examples

您可以在示例页面上找到此 API 的示例。

Summary

Types

Properties

Methods

Events

Types

ContextType

Chrome 44+

菜单可以出现在不同的上下文中。指定 'all' 等同于除 'launcher' 之外的所有其他上下文的组合。“启动器(launcher)”上下文仅受应用程序支持,用于将菜单项添加到单击launcher/taskbar/dock/etc等中的应用程序图标时出现的上下文菜单中。不同的平台可能会限制启动器上下文菜单中实际支持的内容。

TYPE


"all", "page", "frame", "selection", "link", "editable", "image", "video", "audio", "launcher", "browser_action", "page_action", or "action"

ItemType

Chrome 44+

菜单项的类型。

TYPE


"normal", "checkbox", "radio", or "separator"

OnClickData

单击上下文菜单项时发送的信息。

PROPERTIES


checked

​ boolean optional

指示复选框或单选项在单击后的状态的标志。


editable

​ boolean

指示元素是否可编辑的标志(文本输入、文本区域等)。


frameId

​ number optional

Chrome 51+

单击上下文菜单的元素的框架的 ID(iframe id)(如果它在框架中)。


frameUrl

string optional

单击上下文菜单的元素的框架的 URL(如果它在框架中)。


linkUrl

string optional

如果元素是链接,则为它指向的 URL。


mediaType

string optional

如果在这些类型的元素之一上激活了上下文菜单,则为“图像”、“视频”或“音频”之一。


menuItemId

string | number

单击的菜单项的 ID。


pageUrl

string optional

单击菜单项的页面的 URL。如果单击发生在没有当前页面的上下文中,例如在启动器上下文菜单中,则不会设置此属性。


parentMenuItemId

string | number optional

单击的项目的父 ID(如果有)。


selectionText

string optional

上下文选择的文本(如果有)。


srcUrl

string optional

将出现在带有“src” URL 的元素中。


wasChecked

boolean optional

指示复选框或单选项在单击之前的状态的标志。

Properties

ACTION_MENU_TOP_LEVEL_LIMIT

可以添加到扩展操作上下文菜单中的顶级扩展项的最大数量。任何超出此限制的项目都将被忽略。

VALUE

6

Methods

create

chrome.contextMenus.create(
  createProperties: object,
  callback?: function,
)

创建一个新的上下文菜单项。如果在创建过程中发生错误,则可能直到创建回调触发才会检测到;详细信息将在 runtime.lastError 中。

PARAMETERS

  • createProperties

    object

    • checked

      boolean optional

      复选框或单选按钮的初始状态:选中时为true,未选中时为false。在给定的组中,一次只能选择一个单选按钮。

    • contexts

      [ContextType, ...ContextType[]] optional

      此菜单项将出现的上下文列表。默认为 ['page']

    • documentUrlPatterns

      string[] optional

      将项目限制为仅应用于 URL 与给定模式之一匹配的文档或框架。有关模式格式的详细信息,请参阅匹配模式Match Patterns

    • enabled

      boolean optional

      此上下文菜单项是启用还是禁用。默认为true

    • id

      string optional

      分配给此项的唯一 ID。活动页面必填。不能与此扩展程序的另一个 ID 相同。

    • parentId

      string | number optional

      父菜单项的 ID;这使该项目成为先前添加的项目的子项。

    • targetUrlPatterns

      string[] optional

      类似于documentUrlPatterns,基于imgaudiovideo标签的src属性和a标签的href属性进行过滤。

    • title

      string optional

      要在项目中显示的文本;这是必需的,除非 type 是分隔符。当上下文是selection时,在字符串中使用 %s 来显示选定的文本。例如,如果此参数的值为“将 '%s' 翻译为 Pig Latin”并且用户选择单词“cool”,则选择的上下文菜单项为“将 'cool' 翻译为 Pig Latin”。

    • type

      ItemType optional

      菜单项的类型。默认为normal

    • visible

      boolean optional

      Chrome 62+

      该项目是否在菜单中可见。

    • onclick

      function optional

      单击菜单项时回调的函数。活动页面不能使用这个;相反,他们应该为 contextMenus.onClicked 注册一个监听器。

      The onclick function looks like:

      (info: OnClickData, tab: Tab) => {...}

      • info

        OnClickData

        有关单击的项目和单击发生的上下文的信息。

      • tab

        Tab

        发生点击的选项卡的详细信息。平台应用程序不存在此参数。

  • callback

    function optional

    The callback parameter looks like:

    () => void

RETURNS

  • number | string

    新创建的项目的 ID。

remove

chrome.contextMenus.remove(
  menuItemId: string | number,
  callback?: function,
)

删除上下文菜单项。

PARAMETERS

  • menuItemId

    string | number

    要删除的上下文菜单项的 ID。

  • callback

    function optional

    The callback parameter looks like:

    () => void

removeAll

chrome.contextMenus.removeAll(
  callback?: function,
)

删除此扩展添加的所有上下文菜单项。

PARAMETERS

  • callback

    function optional

    The callback parameter looks like:

    () => void

update

chrome.contextMenus.update(
  id: string | number,
  updateProperties: object,
  callback?: function,
)

更新先前创建的上下文菜单项。

PARAMETERS

  • id

    string | number

    要更新的项目的 ID。

  • updateProperties

    object

    要更新的属性。接受与 contextMenus.create 函数相同的值。

    • checked

      boolean optional

    • contexts

      [ContextType, ...ContextType[]] optional

    • documentUrlPatterns

      string[] optional

    • enabled

      boolean optional

    • parentId

      string | number optional

      要成为此项的父项的项的 ID。注意:您不能将项目设置为成为其后代的子项。

    • targetUrlPatterns

      string[] optional

    • title

      string optional

    • type

      ItemType optional

    • visible

      boolean optional

      Chrome 62+

      该项目是否在菜单中可见。

    • onclick

      function optional

      The onclick function looks like:

      (info: OnClickData, tab: Tab) => {...}

      • info

        OnClickData

        Chrome 44+

      • tab

        Tab

        Chrome 44+

        发生点击的选项卡的详细信息。平台应用程序不存在此参数。

  • callback

    function optional

    The callback parameter looks like:

    () => void

Events

onClicked

单击上下文菜单项时触发。

PARAMETERS

By.一粒技术服务

results matching ""

    No results matching ""