如何在两种条件下显示相同的上下文菜单项
How to show the same context menu item under two conditions
如果用户右键单击选择或右键单击图像,我希望在上下文菜单中显示一个菜单项。
目前我正在使用此代码,但不幸的是,如果我右键单击用户选择的图像,它会显示两次菜单项。
contextMenu.Item({
label: contextMenuItemLabel,
contentScriptFile: contextMenuItemContentScriptFiles,
context: contextMenu.SelectionContext(),
onMessage: function (posted) { someFunction(posted) }
});
contextMenu.Item({
label: contextMenuItemLabel,
contentScriptFile: contextMenuItemContentScriptFiles,
context: contextMenu.SelectorContext("img"),
onMessage: function (posted) { someFunction(posted) }
});
如果你知道的话,你能告诉我目前的做法是什么吗?我在这方面花了很多时间。
谢谢。
我不确定是否有更简单的方法,但您可以使用contentScript来确定您是否在图像元素/节点上和/或用户是否选择了文本。
var cm = require("context-menu");
cm.Item({
label: "dfhdfg",
contentScript: 'self.on("context", function (node) {' +
' if(node.nodeName==="IMG"){'+
' //do something to web page or post a message back to addon '+
' } '+
' else if(window.getSelection().toString()!===""){'+
' //do something to web page or post a message back to addon '+
' } '+
'});'
});
我选择了这个:
self.on("context", function (node, data) {
return ((node.nodeName == "IMG") ||
(getSelection().length) );
});
其中CCD_ 1是返回当前选择的函数。
谢谢你的帮助。
相关文章:
- 显示菜单项
- 如何定义和渲染子菜单项,使用Aurelia's路由器
- 如何在没有2个项目的情况下更改菜单项href
- JQuery超级菜单全宽菜单项
- jQuery在部分上滚动时突出显示菜单项
- 突出显示菜单项及其子菜单项
- 突出显示菜单栏上的活动菜单项
- 可访问的更改菜单项,用于使用不引人注目的JS进行导航,而不是jQuery,
- 可访问性:为什么 Jquery 菜单明确将菜单项 tabindex 设置为 -1
- 当我选择菜单项时,如何播放html5播放器的视频
- 如何在两种条件下显示相同的上下文菜单项
- 如何在浏览器中禁用或删除粘贴上下文菜单项
- 从火狐浏览器的上下文菜单中获取菜单项
- Chrome扩展:正确添加具有非持久背景页的上下文菜单项
- 在非持久性后台脚本上添加上下文菜单项
- 验证每个选项卡的上下文菜单项
- 向elFinder添加自定义上下文菜单项
- 电子使用加速器调用上下文菜单中的菜单项
- chrome扩展的多个上下文菜单项
- 在CKEditor中根据用户选择的列表动态添加上下文菜单项