2011-04-12 121 views
8

我创建谷歌浏览器右键菜单项,像这样:如何获取通过Google Chrome上下文菜单右键单击的元素?

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

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

期望的结果:

  • 用户右键单击一个可编辑的元素
  • 用户点击我的上下文菜单项
  • onClick回调中,有我的扩展搜索父“形式”元素相对到目标右键单元

现在看来,Chrome并没有提供任何对目标元素的引用。有没有人找到解决这个限制的方法?

回答

8

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

+0

使用console.log记录?发送请求?你的意思是一个AJAX调用? – Sophivorus 2016-06-06 01:55:12

相关问题