2011-02-05 113 views

回答

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。我以前见过类似的代码;)

+0

大声笑,谢谢!!!!! – 2011-02-05 21:36:41

0

你的处理程序应该接受一个事件对象作为它的参数;事件的srcElement属性将是触发事件的对象。

0

由于帕特里克提到,您正在接收事件对象作为您的onContentMenu回调函数的参数,您可以在其中找到触发事件的元素。我正在使用此代码来实现跨浏览器兼容性。

var oE = event.srcElement || event.originalTarget; 

注意:originalTarget是Mozilla特有的。您可能需要关注event.target https://developer.mozilla.org/en/DOM/event.target