gpt4 book ai didi

javascript - chrome.contextMenus 排除类型

转载 作者:行者123 更新时间:2023-12-03 05:40:21 24 4
gpt4 key购买 nike

如果 contextMenu 重叠,是否有办法排除其中一种类型?
示例:
我有两个上下文项,可编辑选择
在这两种类型匹配的情况下,(可编辑内的选择)

enter image description here

Chrome 为这两个操作提供了子菜单。
我只想拥有一个。
在这种特定情况下,我如何优先考虑或排除其中一种类型?

最佳答案

如果菜单项类型相同(即相同的类型、类型等),那么您可以声明上下文菜单并指定多个上下文。如果任何上下文匹配,则菜单项将显示。

但是,您已经声明您确实需要单独的上下文菜单声明:

  • “选择”上下文的标题为“记下”的菜单项。
  • “可编辑”上下文的标题为“插入注释”的菜单项。
  • 当两种上下文都适用时,标题为“Make note”的菜单项,例如当在输入字段中选择文本时(因此没有“插入注释”菜单项)。

contextMenus API 不直接支持此用例。因此,下一个最佳替代方案是在第三种情况下出现上下文菜单之前删除“可编辑”的上下文菜单(并在第三种情况不再相关时恢复上下文菜单)。

在您的情况下,我将使用 selectionchange 来检测用户何时(取消)选择文本。选择文本后,检查输入字段是否在选择中(为此,您可以组合 SelectionRange 和/或 DOM(遍历)API)。如果找到输入字段,请删除所需的上下文菜单项。无论您是否找到菜单项,都请添加按键和/或鼠标事件的监听器以检测用户的指针是否位于输入字段上。

这是一个使用 selectionchange ( https://stackoverflow.com/a/13673942/938089 ) 的示例,另一个使用 Showing context menu buttons only when right-clicked on classes that start with “Story” 的示例.

关于javascript - chrome.contextMenus 排除类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40564539/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com