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

Patrickが述べたように、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 に答える