博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Context Menus
阅读量:7026 次
发布时间:2019-06-28

本文共 3663 字,大约阅读时间需要 12 分钟。

转载:

内容

Context菜单用于在Chrome的右键菜单中增加自己的菜单项。

您可以选择针对不同类型的对象(如图片,链接,页面)增加右键菜单项。

您可以根据需要添加多个右键菜单项。一个扩展里添加的多个右键菜单项会被Chrome自动组合放到对应扩展名称的二级菜单里。

右键菜单可以出现在任意文档(或文档中的框架)中,甚至是本地文件(如file://或者Chrome://)中。若想控制右键菜单在不同文档中的显示,可以在调用create()和update()时指定documentUrlPatterns。

版本说明: 低于Chrome 14的版本,右键菜单只能用于http:// 或者 https:// 类型的文档。

清单

要使用contentMenus API,您必须在清单中声明“contentMenus”权限。同时,您应该指定一个16x16的图标用作右键菜单的标识。例如:

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

范例

您可以在找到使用contentMenus API的简单范例。

API 参考: Chrome.contextMenus

方法

create

integer Chrome.contextMenus.create(
object createProperties, function callback)

创建一个新的右键菜单项。注意:如果在创建的过程中出现错误,会在回调函数触发后才能捕获到,错误详细信息保存在Chrome.extension.lastError中。

参数

createProperties 
object )
type 
optional enumerated string ["normal", "checkbox", "radio", "separator"] )右键菜单项的类型。默认为“normal”。
title 
optional string )右键菜单项的显示文字;除非为“separator”
类型,否则此参数是
必须的。如果类型为“selection”,您可以在字符串中使用
%s显示选定的文本。例如,如果参数的值为 "Translate '%s' to Pig Latin",而用户还选中了文本“cool”,那么显示在菜单中的将会是 "Translate 'cool' to Pig Latin"。
checked 
optional boolean )Checkbox或者radio的初始状态:true代表选中,false代表未选中。在给定的radio中只能有一个处于选中状态。
contexts 
optional array of string ["all", "page", "frame", "selection", "link", "editable", "image", "video", "audio"] )右键菜单项将会在这个列表指定的上下文类型中显示。默认为“page”。
onclick 
optional function )当菜单项被点击时触发的函数。
参数
info 
(  )右键菜单项被点击时相关的上下文信息。
tab 
(  )右键菜单项被点击时,当前标签的详细信息。
parentId 
optional integer )右键菜单项的父菜单项ID。指定父菜单项将会使此菜单项成为父菜单项的子菜单。
documentUrlPatterns 
optional array of string )这使得右键菜单只在匹配此模式的url页面上生效(这个对框架也适用)。详细的匹配格式见: 。
targetUrlPatterns 
optional array of string )类似于documentUrlPatterns,但是您可以针对img/audio/video标签的src属性和anchor标签的href做过滤。
enabled 
optional boolean )启用或者禁用此菜单项,启用为true,禁用为false。默认为true。
callback 
optional function )在创建完菜单项后触发。如果创建过程中有错误产生,其详细信息在Chrome.extension.lastError中。

返回

( integer )新创建右键菜单项的ID。

回调

如果需要指定回调函数,则回调函数格式如下:

function() {...};

remove

Chrome.contextMenus.remove(
integer menuItemId, function callback)

删除一个右键菜单。

参数

menuItemId 
( integer )待删除的右键菜单项的ID
callback 
optional function )当右键菜单项被删除后触发。

回调

如果需要指定回调函数,则回调函数格式如下:

function() {...};

removeAll

Chrome.contextMenus.removeAll(
function callback)

删除此扩展添加的所有右键菜单项。

参数

callback 
optional function )删除完成后触发。

回调

如果需要指定回调函数,则回调函数格式如下:

function() {...};

update

Chrome.contextMenus.update(
integer id, object updateProperties, function callback)

更新已创建的右键菜单项。

参数

id 
( integer )待更新的右键菜单项的ID.
updateProperties 
( object )待更新的属性。与创建右键菜单项时的属性参数一样。
type 
optional enumerated string ["normal", "checkbox", "radio", "separator"] )
title 
optional string )
checked 
optional boolean )
contexts 
optional array of string ["all", "page", "frame", "selection", "link", "editable", "image", "video", "audio"] )
onclick 
optional function )
parentId 
optional integer )注意:不能将右键菜单项设置成自己子菜单的子菜单。
documentUrlPatterns 
optional array of string )
targetUrlPatterns 
optional array of string )
enabled 
optional boolean )
callback 
optional function )右键菜单项更新完成后触发。

回调

如果需要指定回调函数,则回调函数格式如下:

function() {...};

类型

OnClickData

( object )当右键菜单项被点击时的信息。
menuItemId 
( integer )被点击的右键菜单项的ID。
parentMenuItemId 
optional integer )被点击的右键菜单项的父菜单(如果存在)ID。
mediaType 
optional string )点击激活此右键菜单项时,被点击的元素的类型,如:'image', 'video'或者 'audio'。
linkUrl 
optional string )链接的url(如果被点击的元素是链接)。
srcUrl 
optional string )如果被点击元素有 'src' 属性。
pageUrl 
( string )点击所在页面的URL。
frameUrl 
optional string )框架元素的URL(如果点击的元素是一个框架)。
selectionText 
optional string )如果点击时选择了文本,则为选中的文本内容。
editable 
( string )被点击的元素是否可编辑,比如文本输入框就是可编辑的。
你可能感兴趣的文章
mysql5.6 开启慢连接日志
查看>>
数据库
查看>>
Apache Kylin 深入Cube和查询优化
查看>>
backbone.js 框架 II
查看>>
freemarker总结
查看>>
eclipse中安装velocity插件
查看>>
Sql 中常用日期转换Convert(Datetime)
查看>>
数据恢复前必读
查看>>
监控系统数据存储
查看>>
09_use swarm mode routing mesh
查看>>
ActiveMQ入门实例
查看>>
spring 事件(Application Event)
查看>>
运维人员的职业升级道路
查看>>
spring注解注入:<context:component-scan>详解
查看>>
maven编码 gbk 的不可映射字符
查看>>
SQL中EXISTS的用法
查看>>
归并排序(JAVA)
查看>>
JetBrains PhpStorm 5.0.4 注册码
查看>>
免费php主机空间
查看>>
spring boot 配置mybatis
查看>>