どのオブジェクトまたは ID、またはユーザーが右クリックしたかを検出するにはどうすればよいですか? 関数をトリガーするために onContextMenu を使用していますが、ターゲットを検出する方法がわかりません。
3220 次
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 に答える