gpt4 book ai didi

javascript - 火狐扩展 : get click data when context menu

转载 作者:行者123 更新时间:2023-11-28 07:37:08 26 4
gpt4 key购买 nike

在我的扩展中,我想根据我获得的网址隐藏/显示上下文菜单上的项目:

  1. 如果用户通过一个链接打开上下文菜单,
  2. 从选定的文本中,如果用户打开文本上的上下文菜单也是如此。

在上下文菜单中显示/隐藏项目的功能中,我执行以下检查:

if (gContextMenu.onLink) {
url = gContextMenu.target.href;
}
if (gContextMenu.isTextSelected) {
url = content.window.getSelection();
}

如果在页面中选择了某些文本,并且用户通过链接打开上下文菜单,则这两个条件都成立。此外,如果选择了某些文本,并且用户在页面中的任何位置打开上下文菜单(在选择范围内或不在选择范围内),则 isTextSelected 标志也为 true。

有没有办法可以检测用户使用右键单击的真实元素是什么?我如何知道右键单击是否位于所选文本上?

最佳答案

首先,有 gContextMenu.target,其中包含光标下的 Node(如果有的话)(也可能是 null 在极少数情况下)。

gContextMenu 代码实际上 uses gContextMenu.target to initialize things like .onLink

要检查焦点节点是否确实包含在当前选择范围内,可以使用 .getSelection().containsNode()在焦点文档上。

var isFocusedNodeInCurrentSelection = false;
var selection = gContextMenu.focusedWindow &&
gContextMenu.focusedWindow.getSelection();
if (selection) {
isFocusedNodeInCurrentSelection =
selection.containsNode(gContextMenu.target, true);
}
// Do something with that information.

关于javascript - 火狐扩展 : get click data when context menu,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28467117/

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