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

阻止F12及Ctrl+Shift+I的JS脚本失效,如何修复?

解决阻止F12及Ctrl+Shift+I触发网页审查功能的问题

你的右键菜单阻止代码可以正常运行,但F12和Ctrl+Shift+I的拦截代码失效,核心问题有两个:

  • 事件绑定名称错误:你写了.keydown,正确的事件名是keydown(多余的点会导致事件无法触发)
  • 仅返回false不足以在所有浏览器中阻止默认行为,需要显式调用阻止默认行为的API

以下是修正后的完整代码,同时补充了对其他常见审查快捷键的拦截(比如Mac端的Cmd+Opt+I、Ctrl+U查看源码等):

/**
 * Prevent users to inspect my website
 */
document.addEventListener("keydown", function (event) {
    // 阻止F12
    if (event.keyCode === 123) {
        event.preventDefault();
        event.stopPropagation();
        event.returnValue = false;
        return false;
    }
    // 阻止Ctrl+Shift+I
    else if (event.ctrlKey && event.shiftKey && event.keyCode === 73) {
        event.preventDefault();
        event.stopPropagation();
        event.returnValue = false;
        return false;
    }
    // 阻止Ctrl+U(查看网页源码)
    else if (event.ctrlKey && event.keyCode === 85) {
        event.preventDefault();
        event.stopPropagation();
        event.returnValue = false;
        return false;
    }
    // 阻止Shift+F12
    else if (event.shiftKey && event.keyCode === 123) {
        event.preventDefault();
        event.stopPropagation();
        event.returnValue = false;
        return false;
    }
    // 处理Mac端Cmd+Opt+I
    else if (event.metaKey && event.altKey && event.keyCode === 73) {
        event.preventDefault();
        event.stopPropagation();
        event.returnValue = false;
        return false;
    }
});

// 阻止右键菜单
document.addEventListener("contextmenu", function (e) {
    e.preventDefault();
});

关键说明

  1. 修正事件名:把.keydown改为keydown,确保事件能正常监听键盘操作
  2. 增强阻止逻辑:同时调用preventDefault()、stopPropagation(),并设置returnValue = false,覆盖不同浏览器的默认行为处理机制
  3. 补充快捷键拦截:增加了对其他常见的审查/查看源码快捷键的拦截,提升拦截覆盖范围

注意:这类方法只能拦截普通用户的操作,无法完全阻止技术熟练的用户通过浏览器设置、调试工具直接启动等方式进入审查模式。

内容的提问来源于stack exchange,提问作者Carvel Russ Silvano

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 17:40:36