如何获得右键单击事件javascript

时间:2011-12-30 09:19:29

标签: javascript

  

可能重复:
  How to detect right mouse click + paste using JavaScript?

如果在任何人粘贴后右键点击然后粘贴,如何捕获事件? 我想在右键单击并粘贴后在文本框中粘贴任何内容时发出警报。 在javascript中有没有办法知道右键单击和粘贴?

6 个答案:

答案 0 :(得分:3)

document.onmousedown=doSomething;  



function doSomething(e) {
        var rightclick;
        if (!e) var e = window.event;
        if (e.which) rightclick = (e.which == 3);
        else if (e.button) rightclick = (e.button == 2);
        alert('Rightclick: ' + rightclick); // true or false
    }

这是一个旧的Netscape属性。左键给出值1,中间按钮(鼠标滚轮)给出2,右键给出3. W3C和微软碰巧同意这个,给右键2值。 e.which和e.button的组合用于Mozilla e.button,按住Ctrl键单击值为2.

答案 1 :(得分:2)

$("#pasteable").on('paste',function(event){
    setTimeout(function(){
        alert($("#pasteable").val());
    },100);
});

小提琴:http://jsfiddle.net/BgW7x/

答案 2 :(得分:2)

var elem = document.getElementById("myID");

elem.onclick = function( event ){
    var event = event || window.event;
    if( event.which === '3' ){
        // it was a right click
    }
};

您可以通过纯Javascript方式检测是否已使用鼠标右键单击了某个元素。像其他人注意到的那样,您可以使用jQuery来检测粘贴事件。 Here是一个解释如何在没有jQuery的情况下检测粘贴事件的答案。

答案 3 :(得分:0)

捕获正常点击事件(例如,使用jQuery:$( node ).click( function( ev ){ ... } )并检查which属性>= 2

$( node ).click( function( ev ){
    if( ev.which >= 2 ){
        // right click
    }
} );

请注意which完全值,以检测基于浏览器的右键更改(但我认为总是 2或3)。有关详细信息,请参阅http://www.quirksmode.org/js/events_properties.html

答案 4 :(得分:0)

看看这个

http://jsfiddle.net/uUqrF/ enter link description here

添加了keydown事件来处理特定场景,

e.g。如果您右键单击文本框,然后尝试从ctrl + v粘贴

在这种情况下,粘贴事件也会检测此粘贴。

答案 5 :(得分:-1)

使用事件属性

检查click事件中的鼠标按钮
$('#element').click(function(event) {
    if  (event.which==3) {
            alert('Right mouse button pressed');
            break;
    }
});

了解更多选项this

使用jquery,你必须在头标记中包含jquery库

<script type="text/javascript" src="jquery library path which you can download from jquery site or use google jquery library"></script>

您必须使用另一个<script>标记为您编写jquery

<script type="text/javascript"></script>
$(document).ready(function(){

$('#element').click(function(event) {
        if  (event.which==3) {
                alert('Right mouse button pressed');
                break;
        }
    });

});
<script type="text/javascript">

</script>

更多细节阅读jquery文档,做一点google