如何判断使用crossrider contextMenu选择了哪个元素

时间:2014-04-03 12:32:05

标签: javascript contextmenu crossrider

appAPI.contextMenu回调返回的数据目前只有以下内容:

  • PAGEURL
  • linkUrl
  • selectedText
  • srcUrl

似乎没有办法告诉实际上点击了什么,只有一些关于它的信息。例如,我可以搜索所有图像并找到匹配srcUrl的图像,但如果同一图像多次出现该怎么办?

我可以尝试在extension.js中捕获右键单击事件,并尝试将它们与上下文菜单事件相匹配,但这似乎非常圆。

找到所选元素的预期方法是什么(在receiving the event in the page之后)?

让我们说,例如我希望能够右键单击图像并display:none

2 个答案:

答案 0 :(得分:0)

目前,Crossrider平台不支持您需要的功能,我认为您的解决方法是合理的。但是,我已将您的建议转发给Crossrider开发团队,他们将在未来的版本中考虑它。

[披露:我是Crossrider员工]

答案 1 :(得分:0)

作为一种解决方法,这实际上看起来非常可靠,尽管我还没有经过多少测试。 TBH我期待着一致性问题:

//in extension.js (background.js just forward context menu events)
var lastRightClicked = null;
window.addEventListener("contextmenu", function(e) { //I guess a mousedown event would work here too
    lastRightClicked = e.target;
}, true);

appAPI.message.addListener({channel:"contextmenu"}, function(message) {
    if (message.menuitem == "Hide")
        lastRightClicked.style.display = "none";
});