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弹出时需要移动鼠标才能点击
免责声明: 本文仅代表作者个人观点,与爱易网无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。