如何检测开发者工具是否被禁用?
2025-07-06
1
参考资料
如何检测开发者工具是否被禁用?
检测开发者工具是否被禁用的方法及示例
1. 检查console对象是否被修改
if (!window.console || !console.log) { console.log('开发者工具可能被禁用'); } else { console.log('开发者工具可用'); }
2. 尝试调用console方法并捕获错误
try { console.log('测试'); console.log('开发者工具可用'); } catch (e) { console.log('开发者工具可能被禁用'); }
3. 检测debugger语句是否被阻止
let devtoolsOpen = false; function detectDevTools() { const start = Date.now(); debugger; if (Date.now() - start > 100) { devtoolsOpen = true; } } detectDevTools(); console.log('开发者工具状态:', devtoolsOpen ? '打开' : '关闭');
4. 检查Function.prototype.toString是否被修改
const isDevToolsDisabled = (function() { const dummyFn = function() {}; return dummyFn.toString() !== 'function() {}'; })(); console.log('开发者工具状态:', isDevToolsDisabled ? '可能被修改' : '正常');
5. 监听窗口大小变化(开发者工具会影响布局)
let devToolsOpen = false; const threshold = 160; // 检测阈值 window.addEventListener('resize', () => { if (window.outerWidth - window.innerWidth > threshold || window.outerHeight - window.innerHeight > threshold) { devToolsOpen = true; } else { devToolsOpen = false; } console.log('开发者工具状态:', devToolsOpen ? '打开' : '关闭'); });
注意:这些方法都不是100%可靠,现代浏览器可能会绕过这些检测。