Chrome扩展程序:仅限可编辑选定文本的上下文菜单

时间:2015-02-16 15:11:21

标签: javascript google-chrome google-chrome-extension contextmenu

在Google Chrome扩展程序中,我知道如何在所选文字上显示上下文菜单。

chrome.contextMenus.create({
    'title': 'TEST',
    'contexts': ['selection'],
    'id': "test"
});

chrome.contextMenus.create({
    'title': 'submenu',
    'contexts': ['selection'],
    'id': "test_1",
    'parentId': "test",
    'onclick': menu.onClicked_
});

context menu

但是,只有当所选文本位于"可编辑元素中时,我才想显示此菜单。 (输入文本,文本区域,内容可编辑DIV,......)。我怎么能这样做?

谢谢!

1 个答案:

答案 0 :(得分:2)

看起来几乎不可能达到你想要的效果。

Chrome API为上下文菜单定义了2个相关的上下文:

    所有可编辑元素的
  • "editable"上下文
  • "selection"用于文档的选定片段

你想要的是这些之间的逻辑AND,但Chrome只允许逻辑OR。

还要考虑选择可以跨越多个可编辑元素。因此,您需要一个可以完全在可编辑元素中进行描述的文本选择"。好吧,你可以随时leave a feature request

可能有一些hacky变通方法,比如尝试在每个页面上使用内容脚本检测用户选择,并基于此动态创建菜单,但我确信有方法,这样的方法太多了