以下代码兼容IE8及以上、火狐、chrome。
if ((navigator.userAgent.indexOf('MSIE') >= 0) && (navigator.userAgent.indexOf('Opera') < 0)){
//alert('你是使用IE');
document.oncontextmenu = nocontextmenu; // for IE5+
}else{
document.oncontextmenu = nocontextmenu; // for IE5+
document.onmousedown = norightclick; // for all others
}
function nocontextmenu(){
if(isFirefox=navigator.userAgent.indexOf("Firefox")>0){
return false;
}else{
/* 取消事件冒泡,在 IE 的事件机制中,触发事件会从子元素向父元素逐级
上传,就是说,如果子元素触发了单击事件,那么也会触发父元素的单击事件;event.cancelBubble=true;可以停止事件继续上传补充一点,Ie的事件传递是从下到上的*/
event.cancelBubble = true;
event.returnValue = false;
}
}
function norightclick(e){
if (window.Event){
if(e.which == 2 || e.which == 3){
return false;
}
}else if(event.button == 2 || event.button == 3){
event.cancelBubble = true
event.returnValue = false;
return false;
}
}