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
});
Run Code Online (Sandbox Code Playgroud)
您需要向每个页面注入一个内容脚本,该脚本将检查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);
Run Code Online (Sandbox Code Playgroud)
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
});
});
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2947 次 |
| 最近记录: |