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
});
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:
document.addEventListener("mousedown", function(event){
//right click
if(event.button == 2) {
if(window.getSelection().toString()) {
chrome.extension.sendRequest({cmd: "createSelectionMenu"});
} else {
chrome.extension.sendRequest({cmd: "createRegularMenu"});
}
}
}, true);
background.html
chrome.extension.onRequest.addListener(function(request) {
if(request.cmd == "createSelectionMenu") {
chrome.contextMenus.removeAll(function() {
chrome.contextMenus.create({
"title": "B",
"contexts":["selection"],
"onclick": doB
});
});
} else if(request.cmd == "createRegularMenu") {
chrome.contextMenus.removeAll(function() {
chrome.contextMenus.create({
"title": "A",
"contexts":["page"],
"onclick": doA
});
});
}
});
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With