Google chrome extension Chrome扩展上下文菜单,区分图像和链接事件
在我的chrome扩展中,我添加了两个上下文项“getlink”和“getimage”。主要区别在于,在设置它们时,它们分别具有链接和图像的“上下文”。但当右键单击用作链接的图像时,您可以同时选择以下两种选项: 当点击其中一个时,进入监听器的数据似乎是相同的,我需要能够区分这两个,以了解上下文是图像还是链接,从而以不同的方式处理它们。这是我的密码:Google chrome extension Chrome扩展上下文菜单,区分图像和链接事件,google-chrome-extension,contextmenu,Google Chrome Extension,Contextmenu,在我的chrome扩展中,我添加了两个上下文项“getlink”和“getimage”。主要区别在于,在设置它们时,它们分别具有链接和图像的“上下文”。但当右键单击用作链接的图像时,您可以同时选择以下两种选项: 当点击其中一个时,进入监听器的数据似乎是相同的,我需要能够区分这两个,以了解上下文是图像还是链接,从而以不同的方式处理它们。这是我的密码: chrome.runtime.onInstalled.addListener(function() { var context = "imag
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) {
});
看一看,您可以通过mediaType
“图像”、“视频”或“音频”中的一种,如果在这些类型的元素之一上激活了关联菜单
如果想知道单击了哪个菜单项,可以在传递到
onClicked
处理程序的对象的menuItemId
属性中获取单击的上下文菜单项的id
值:
function onClickHandler(info, tab) {
console.log(info.menuItemId);
//...
}
info
对象的menuItemId
属性在这两种情况下是否真的相同?如果是,它是哪个id:contextimage
还是contextlink`?@apsillers啊,我怎么会错过这个!如果你把这个作为回答,我会接受的it@DasBeasto,看来我误解了你的问题。。。我只是认为你想区分用户是否在不同的目标(链接/图像)上单击相同的菜单,然而,似乎你想要的是在相同的目标上单击不同的菜单。。。然后我同意,只是menuItemId
解决了这个问题。@HaibaraAi是的,很抱歉,我想这不清楚,我只是想知道用户是否要求图像或特定链接图像元素的链接。谢谢你的回答,尽管我很感激。你能分享一下你是如何复制图片链接和图片的吗?谢谢这对普通链接有用。不幸的是,如果链接是一个图像,“复制链接”事件仍然会给出mediaType=“image”。@DasBeasto,你能给我一个示例链接吗?