javascript 处理鼠标右键事件
    
- 使用右键事件 ??
 
- 
在需要右键的地方加上??onmousedown="if(event.button?==?2)?alert('点击右键了!');即可 ?? 
 
- ? ??
 
- 不经意地被一位同事问起在javascript里面如何检测右键事件,并且屏蔽原来的右键菜单,上网查找一翻之后发现一些比较简单的方法。 ??
 
- 
如设置onmousedown,检查其event.button的值是不是2(代表右键)。 ?? 
 
- 
这个方法在FF和IE中都可用,但是在Maxthon中event.button却是0,这让我有点困惑,Maxthon不是IE内核的吗? ?? 
 
- 
我只能设想Maxthon这个壳是做过手脚的。然而如果设置onmouseup,其event.button值就是2了。 ?? 
 
- 所以如果检测右键的话,是设置其onmouseup即可。 ??
 
- ??
 
- 
document.getElementById("test").onmouseup=function(oEvent)?{ ?? 
 
- 
????if?(!oEvent)?oEvent=window.event; ?? 
 
- 
????if?(oEvent.button==2)?{ ?? 
 
- 
?????????? 
 
- 
?????????? 
 
- ????} ??
 
- } ??
 
- ??
 
- 但是如果还需要屏蔽右键的话,还是用oncontextmenu比较简单,但这时就不是检测右键,而是检测是否弹出上下文菜单。 ??
 
- 屏蔽的方法跟屏蔽其他默认行为的方法是一样的,一般来说都是有效的,不过因为某些浏览器有禁止禁止弹出右键菜单的功能,所以如果需要在用户点击右键时做点事情,最好还是不要放在oncontextmenu中,而是放在onmouseup中并检测右键,附加oncontextmenu来屏蔽原来的菜单。 ??
 
- ??
 
- 
document.getElementById("test").oncontextmenu=function(event)?{ ?? 
 
- 
?????? 
 
- 
?????? 
 
- 
?????? 
 
- 
????if?(document.all)?window.event.returnValue?=?false;?? 
 
- 
????else?event.preventDefault(); ?? 
 
- }; ??
 
- ??
 
- 通过一些简单的测试,可以发现在FF和在IE存在着有趣的区别。 ??
 
- 
在?onmouseup和oncontextmenu事件处理中都使用alert,可以看出来是先执行onmouseup事件再到oncontextmenu?的,在IE中,两者会非常连贯的在一起执行,(均认为是发生在test元素上的事件),而在FF里面则不是(前提是test元素所占区域比较小,当?alert弹出时需要移动鼠标才能点击
                        
                    
 
 
                    
                    
                        免责声明: 本文仅代表作者个人观点,与爱易网无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。