Bet*_*tty 8 contextmenu google-chrome-extension
我想做的是:
如果用户没有选择任何内容,则显示菜单项A;
如果用户选择了某些内容,则显示菜单项B.
到目前为止,我能得到的是:
如果用户没有选择任何内容,则显示菜单项A;
如果用户选择了某些内容,则同时显示A和B.
我想知道:
选择时如何使项目A消失?
非常感谢!
以下是我的代码:
var all = chrome.contextMenus.create
({
    "title": "A",
    "contexts":["page"],
    "onclick": doA
});
var selection = chrome.contextMenus.create
({
    "title": "B",
    "contexts":["selection"],
    "onclick": doB
});
您需要向每个页面注入一个内容脚本,该脚本将检查mousedown事件(在菜单显示之前)是否在页面上有选择,然后将命令发送到后台页面以创建相应的菜单项.
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
            });
        });
    }
});
| 归档时间: | 
 | 
| 查看次数: | 2947 次 | 
| 最近记录: |