如何通过Google Chrome上下文菜单获取右键单击的元素?

时间:2011-04-12 22:59:09

标签: google-chrome contextmenu element

我正在Google Chrome中创建一个上下文菜单项,如下所示:

chrome.contextMenus.create({
 "title":"My Context Menu Item", 
 "contexts":["editable"], 
 "onclick": onClick
});

onClick回调接收两个参数:OnClickInfo对象和制表符对象。这两个对象似乎都不包含对调用上下文菜单时右键单击的DOM元素的引用。我有console.logged这两个对象,但在任何地方都没有看到对目标元素的任何引用。

期望的结果:

  • 用户右键单击可编辑元素
  • 用户点击我的上下文菜单项
  • onClick回调中,让我的扩展程序搜索相对于目标右键单击元素的父“表单”元素

现在看来,Chrome看起来并不像目标元素那样提供任何参考。有没有人找到解决这个限制的方法?

1 个答案:

答案 0 :(得分:8)

您必须在每个页面中注入内容脚本并侦听mousedown事件并记录最后单击的元素。然后,当调用上下文菜单回调时,您必须sendRequest到选项卡以获取有关该最后单击元素的信息。