参考资料

  1. Excel转HTML表格有哪些
  2. HTML id 属性详解
  3. HTML 合并单元格
  4. HTML无序列表
  5. HTML "计算机输出"标记
  6. HTML 表格表头单元格
  7. HTML 框架
  8. HTML 文本对齐方式

如何禁用网页端开发者工具

禁用网页端开发者工具的方法及代码示例

1. 使用 debugger 语句干扰调试

setInterval(function() {
    debugger;
}, 100);

效果:不断触发断点,干扰调试。


2. 禁用右键菜单(防止右键检查)

document.addEventListener('contextmenu', function(e) {
    e.preventDefault();
});

效果:阻止右键菜单,增加打开开发者工具的难度。


3. 禁用快捷键(如 F12、Ctrl+Shift+I)

document.addEventListener('keydown', function(e) {
    if (
        e.key === 'F12' ||
        (e.ctrlKey && e.shiftKey && e.key === 'I') ||
        (e.ctrlKey && e.shiftKey && e.key === 'J') ||
        (e.ctrlKey && e.key === 'U')
    ) {
        e.preventDefault();
    }
});

效果:阻止常见开发者工具快捷键。


4. 检测窗口大小变化(开发者工具通常会影响窗口)

window.addEventListener('resize', function() {
    if (window.outerWidth - window.innerWidth > 100 || window.outerHeight - window.innerHeight > 100) {
        document.body.innerHTML = '开发者工具已禁用';
        window.close(); // 尝试关闭窗口
    }
});

效果:检测窗口变化,判断是否打开开发者工具。


5. 重写 console 方法(干扰日志输出)

console.log = function() {};
console.error = function() {};
console.warn = function() {};

效果:阻止 console 输出,干扰调试信息。


6. 使用 Object.defineProperty 修改 window 属性

Object.defineProperty(window, 'console', {
    get: function() {
        throw new Error('Console is disabled');
    }
});

效果:访问 console 时抛出错误。


7. 检测开发者工具打开状态(基于 Date 计算)

setInterval(function() {
    const startTime = performance.now();
    debugger;
    const endTime = performance.now();
    if (endTime - startTime > 100) {
        alert('开发者工具已打开!');
        window.location.href = 'about:blank'; // 跳转空白页
    }
}, 1000);

效果:利用 debugger 执行时间判断是否在调试。


8. 无限循环 debugger(更激进的方式)

(function() {
    while (true) {
        debugger;
    }
})();

效果:无限触发断点,导致页面卡死。


9. 禁用页面内容选择(防止复制代码)

document.addEventListener('selectstart', function(e) {
    e.preventDefault();
});

效果:阻止用户选择文本,增加分析难度。


10. 代码混淆(增加逆向难度)

使用工具(如 JavaScript Obfuscator)混淆代码,使其难以阅读和调试。


总结

  • 这些方法可以增加打开开发者工具的难度,但无法完全阻止(用户仍可通过浏览器设置绕过)。

  • 主要用于保护前端代码防止简单调试,但不应依赖其作为安全措施。

  • 适用于防爬虫、防简单逆向等场景。