返回
创建于
状态
公开

当某些网页在代码中加入了 debugger 语句来阻止用户打开控制台时,仍然有多种方法可以强行打开并正常使用控制台。以下是几种有效的解决方案:

基本的强制打开控制台方法

常规快捷键

  • Windows/Linux: Ctrl + Shift + IF12[1]
  • Mac: Cmd + Option + ICmd + Option + J[2]

通过浏览器菜单

点击浏览器右上角的三个点(菜单按钮),选择"更多工具",然后点击"开发者工具"[1]。

特殊情况下的强制打开

在某些限制较严格的页面,可以尝试:

  • 按住 Shift 键 + 右键点击,强制打开上下文菜单,然后选择"检查页面"[3]
  • 使用 Ctrl + Shift + J 直接打开控制台面板[2]

绕过无限 debugger 的方法

1. 禁用所有断点

这是最简单直接的方法:

  • 在 Chrome 控制台的 Sources 标签页中,点击 "Deactivate breakpoints" 按钮[4]
  • 或按下 Ctrl + F8 快捷键[4]

2. Never pause here(永不在此处暂停)

  • 在 debugger 位置点击行号,右键选择 "Never pause here"[5][6]
  • 这会让调试器永远不在此处断下,可以有效绕过无限 debugger

3. 添加条件断点

  • 右键选择 "Add conditional breakpoint"[5][7]
  • 输入 false 即可跳过无限 debugger[5]
  • 原理是添加条件断点,将执行条件改为 false

4. Firefox 浏览器的特殊方法

在 Firefox 浏览器中,可以取消勾选 "Pause on debugger statement" 选项,这样可以直接绕过无限 debugger[6]。

针对特定情况的高级方法

重写函数

如果网站使用具名函数实现无限 debugger,可以在控制台中重新定义该函数:

javascript
1function startDebug() {}

或者:

javascript
1方法名 = function() {}

替换文件内容

对于更复杂的情况[8][9]:

  1. 关闭控制台,进入网站首页
  2. 右键查看网站源码,找到相关的 js 文件
  3. 在控制台的 Sources 选项中找到该文件
  4. 搜索关键代码(如跳转的 URL 或 debugger 语句)
  5. 右键选择 "替换内容"(Chrome)或 "覆盖"
  6. 注释掉或删除相关的 debugger 代码
  7. Ctrl + S 保存并刷新页面

添加到忽略列表

将包含 debugger 的文件添加到 Ignore List 中:

  • 在 debugger 处右键选择 "添加到 ignore list"[7]
  • 配置忽略列表,跳过相关文件的断点

实用技巧

先打开控制台再访问页面

有时可以先在空白页面打开控制台,然后再导航到目标页面,这样可以避免一些检测[8]。

使用不同的控制台面板

如果 Sources 面板被 debugger 阻挡,可以尝试:

  • Esc 键在其他面板中打开控制台抽屉[10]
  • 直接使用 Ctrl + Shift + J 打开控制台面板[2]

这些方法基本可以应对大部分网站的 debugger 限制。选择哪种方法主要取决于网站具体的实现方式,建议从简单的方法开始尝试,逐步使用更复杂的解决方案。

[1] https://blog.csdn.net/qq_36765018/article/details/138065640 [2] https://learn.microsoft.com/zh-cn/microsoft-edge/devtools/console/ [3] https://www.reddit.com/r/webdev/comments/1hu9uc0/how_does_this_website_prevent_developer_console/?tl=zh-hans [4] https://cloud.tencent.com/developer/article/1505309 [5] https://segmentfault.com/a/1190000040597839 [6] https://juejin.cn/post/7314863097566658612 [7] https://blog.csdn.net/weixin_43880397/article/details/124920919 [8] https://blog.csdn.net/qq_44732146/article/details/135141365 [9] https://juejin.cn/post/7315220272944824355 [10] https://zh.javascript.info/debugging-chrome [11] https://www.cnblogs.com/best-coder/p/11765875.html [12] https://leeon.gitbooks.io/devtools/content/learn_basic/using_console.html [13] https://developer.chrome.com/docs/devtools/shortcuts [14] https://support.google.com/chrome/a/answer/7572556 [15] https://developer.chrome.com/docs/devtools/settings/preferences [16] https://blog.csdn.net/qq_41227106/article/details/127420903 [17] https://www.cnblogs.com/anding/p/17498916.html [18] https://www.cnblogs.com/liyuanhong/articles/18210072 [19] https://blog.csdn.net/qhy0910_/article/details/129850796 [20] https://support.google.com/chrome/a/answer/14749672