You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

网站右键禁用后,鼠标滚轮点击弹出提示仍打开新标签页的解决求助

解决右键禁用后鼠标中键仍打开链接的问题

嘿,我懂你的困扰——好不容易把右键禁用了,结果鼠标滚轮中键一点,弹完提示还是会在新标签页打开链接,确实闹心。问题出在你原来的代码只处理了右键的拦截逻辑,完全没管中键的默认行为,所以哪怕弹了提示,浏览器还是会执行中键打开链接的动作。

下面给你一套完整的解决方案,既能拦右键,也能把中键的行为彻底禁掉:

改进后的JavaScript代码

// 统一禁用右键和中键功能
// 处理现代浏览器的右键菜单事件
document.addEventListener('contextmenu', function(e) {
    e.preventDefault(); // 阻止默认右键菜单弹出
    e.stopPropagation(); // 阻止事件冒泡
    alert("Right click is disabled for Security Reasons.");
    return false;
});

// 拦截鼠标按下事件,处理右键和中键
document.addEventListener('mousedown', function(e) {
    // button值:1对应中键,2对应右键
    if (e.button === 1 || e.button === 2) {
        e.preventDefault(); // 阻止默认行为(比如中键打开新标签)
        e.stopPropagation();
        alert("Right click and middle click are disabled for Security Reasons.");
        return false;
    }
});

// 补充鼠标松开事件的拦截,防止漏网之鱼
document.addEventListener('mouseup', function(e) {
    if (e.button === 1 || e.button === 2) {
        e.preventDefault();
        e.stopPropagation();
        return false;
    }
});

// 兼容旧版IE浏览器(如果需要支持的话)
if (document.all) {
    document.onmousedown = function() {
        // 旧IE中button值判断逻辑略有差异,同时拦截中键和右键
        if (window.event.button === 1 || window.event.button === 2) {
            window.event.returnValue = false;
            alert("Right click and middle click are disabled for Security Reasons.");
            return false;
        }
    };
    document.oncontextmenu = function() {
        window.event.returnValue = false;
        alert("Right click is disabled for Security Reasons.");
        return false;
    };
}

关键逻辑说明

  • contextmenu事件:专门针对右键菜单,阻止它就能直接禁用右键弹出菜单的行为。
  • mousedown/mouseup事件:拦截中键(button === 1)和右键(button === 2)的点击动作,通过preventDefault()直接阻止浏览器的默认行为(比如中键打开新标签)。
  • 事件冒泡阻止:用stopPropagation()避免事件传递到父元素,防止出现意外的触发情况。
  • 旧IE兼容:如果你的网站还需要支持老版本IE,保留最后那段针对document.all的判断逻辑即可。

不过要提一句,这种禁用方式只能拦住普通用户,懂技术的人可以通过禁用JavaScript轻松绕过,但对于常规场景来说已经足够啦。

内容的提问来源于stack exchange,提问作者lifeisbeautiful

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 04:11:37