If you don't want to foul your HTML with inline events, and you care about IE <9 support, you can use this lovely mess:
function addEvent (el, eventType, listener) { if (el.addEventListener) { // W3C-compliant el.addEventListener(eventType, listener, false); } else {// IE-specific el.attachEvent('on'+eventType, listener); } } addEvent(document.getElementById('myLinkID'), 'contextmenu', function (e) { if (e.preventDefault) { // W3C e.preventDefault(); } else { // IE e.returnValue = false; } });
source share