我想阻止标准上下文菜单,并手动处理右键事件。
这是怎么做到的?
我想你正在寻找这样的东西:
function rightclick() { var rightclick; var e = window.event; if (e.which) rightclick = (e.which == 3); else if (e.button) rightclick = (e.button == 2); alert(rightclick); // true or false, you can trap right click here by if comparison }
(http://www.quirksmode.org/js/events_properties.html)
然后使用onmousedown甚至与函数右键()(如果你想在整个页面上全局使用它,你可以这样做<body onmousedown=rightclick(); >
<body onmousedown=rightclick(); >
使用oncontextmenu事件。
oncontextmenu
这里有一个例子:
<div oncontextmenu="javascript:alert('success!');return false;"> Lorem Ipsum </div>
并使用事件监听器(从2011年的评论 credit到桔梗科植物):
el.addEventListener('contextmenu', function(ev) { ev.preventDefault(); alert('success!'); return false; }, false);
不要忘记返回false,否则标准上下文菜单仍然会弹出。
如果要使用自己编写的函数而不是javascript:alert("Success!"),请记住在函数和oncontextmenu属性中都返回false。
javascript:alert("Success!")