禁用上下文菜单和右键单击菜单

Disable contextmenu and rightclick menu

本文关键字:菜单 右键 单击 上下文      更新时间:2023-09-26
$(document).on('mousedown', 'a', function(event){ 
    event.preventDefault();
    if(event.which == 1){
        if($(this).attr('target') != '_blank'){
            loadpage($(this).attr('href'));
        }
    }
}).on('contextmenu', 'a', function(event){
    event.preventDefault();
});

你好,再次堆叠溢出!

对于我当前的项目,我想在每个链接上禁用鼠标右键和中键。当用鼠标左键单击时,如果链接不包含target="_blank",我需要调用一个使用 AJAX 加载该页面的函数。(功能loadpage())。

这段代码运行良好,尽管鼠标中键仍然会打开一个新选项卡。我该如何解决这个问题?

提前感谢!

在该事件处理程序中,调用

e.preventDefault():
$("#foo").on('click', function(e) { 
   if( e.which == 2 ) {
      e.preventDefault();
   }
});

或: 使用 JAVASCRIPT 禁用鼠标滚轮事件:

In IE:
document.attachEvent('onmousewheel', function(e){
     if (!e) var e = window.event;
     e.returnValue = false;
     e.cancelBubble = true;
     return false;
}, false);
In Safari:
document.addEventListener('mousewheel', function(e){
    e.stopPropagation();
    e.preventDefault();
    e.cancelBubble = false;
    return false;
}, false);
In Opera:
document.attachEvent('mousewheel', function(e){
    if (!e) var e = window.event;
    e.returnValue = false;
    e.cancelBubble = true;
    return false;
}, false);
In Firefox:
document.addEventListener('DOMMouseScroll', function(e){
    e.stopPropagation();
    e.preventDefault();
    e.cancelBubble = false;
    return false;
}, false);