How do I detect what object or ID or the user right-clicked on? I'm using the onContextMenu to trigger a function but I don't know how to detect the target.
Asked
Active
Viewed 3,700 times
3 Answers
5
<html>
<head>
<script type="text/javascript">
if (document.addEventListener) {
document.addEventListener('contextmenu', function(e) {
alert(e.target.nodeName); //or e.target.getAttribute('id')
e.preventDefault();
}, false);
} else {
document.attachEvent('oncontextmenu', function(e) {
alert(window.event.srcElement.nodeName); //or e.srcElement and then like above
window.event.returnValue = false;
});
}
</script>
</head>
<body>
<span>Lorem ipsum...</span><br/>
body content
</body>
</html>
PS. I've seen similar code before ;)

Radek Benkel
- 8,278
- 3
- 32
- 41
0
Your handler should accept an event object as its parameter; the srcElement property of the event will be the object that triggered the event.

Venge
- 2,417
- 16
- 21
0
As Patrick mentioned, you are receiving an event object as parameter to your onContentMenu callback function, where you can find the element triggered the event. I am using this code for cross-browser compatibility.
var oE = event.srcElement || event.originalTarget;
Note: originalTarget is Mozilla specific. You might want to pay attention to event.target https://developer.mozilla.org/en/DOM/event.target

ludesign
- 1,353
- 7
- 12