3

如何检测哪些对象或 ID 或用户右键单击?我正在使用 onContextMenu 触发一个函数,但我不知道如何检测目标。

4

3 回答 3

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

于 2011-02-05T21:13:24.643 回答
0

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

于 2011-02-05T20:43:58.410 回答
0

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

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

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

于 2011-02-05T20:58:18.550 回答