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

Ben*_*n D 9 google-chrome element contextmenu

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

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

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

期望的结果:

  • 用户右键单击可编辑元素
  • 用户单击我的上下文菜单项
  • onClick回调中,让我的扩展名搜索相对于目标右键单击元素的父"form"元素

就目前而言,它看起来并不像Chrome提供对目标元素的任何引用.有没有人找到解决这个限制的方法?

Sco*_*ott 8

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