What I want to do is:
if the user does not select anything, display menu item A;
if the user selects something, display menu item B.
So far what I can get is:
if the user does not select anything, display menu item A;
if the user selects something, display both A and B.
I want to know:
how to make item A disappear when there is selection?
Many thanks!
Below is my code:
var all = chrome.contextMenus.create
({
"title": "A",
"contexts":["page"],
"onclick": doA
});
var selection = chrome.contextMenus.create
({
"title": "B",
"contexts":["selection"],
"onclick": doB
});
Perhaps this was a bug or the functionality was different back when the OP originally asked the question (jun 17, 2011); but today, the OP's code works exactly as expected by simply using
contexts
parameters in herchrome.contextMenus.create()
calls, exactly as she has it written.You would need to inject a content script to every page which would check on
mousedown
event (before menu is displayed) whether or not there is a selection on the page, and then would send a command to a background page to create according menu items.content_script.js:
background.html