在我的Chrome扩展程序中,我添加了两个上下文项目"获取链接"和"获取图像"。主要区别在于将它们设置为两个时,它们具有" context"分别是链接和图像。但是当右键单击作为链接的图像时,您可以同时选择:
当点击其中任何一个时,进入监听器的数据似乎是相同的,我需要能够区分这两个以了解上下文是图像的内容还是链接以不同方式处理它们。这是我的代码:
chrome.runtime.onInstalled.addListener(function() {
var context = "image";
var title = "Copy Image";
var id = chrome.contextMenus.create({"title": title, "contexts":[context],
"id": "context" + context});
});
chrome.runtime.onInstalled.addListener(function() {
var context = "link";
var title = "Copy link";
var id = chrome.contextMenus.create({"title": title, "contexts":[context],
"id": "context" + context});
});
chrome.contextMenus.onClicked.addListener(onClickHandler);
function onClickHandler(info, tab) {
chrome.tabs.query({active: true, currentWindow: true}, function(tabs){
chrome.tabs.sendMessage(tabs[0].id, {action: "imageAdded", subject: info.srcUrl}, function(response) {
});
答案 0 :(得分:1)
如果您想知道单击了哪个菜单项,可以获取传递到id
处理程序的对象的menuItemId
属性中单击的上下文菜单项的onClicked
值:
function onClickHandler(info, tab) {
console.log(info.menuItemId);
//...
}
答案 1 :(得分:0)
看看Parameter of onClicked callback,您可以通过mediaType
区分图片/链接
'图像','视频'或'音频'如果在其中一种元素上激活了上下文菜单。