需确认米侠浏览器控制台能实时捕获JS错误:先启用开发者工具并验证Console挂载成功(如document.title返回标题),再通过throw new Error测试报错显示;接着用addEventListener监听全局错误、unhandledrejection及资源加载失败三类信号,并绕过console重写、广告过滤和onerror卸载等拦截手段。

你想在米侠浏览器里第一时间看到网页JS执行失败的源头,不是等用户反馈“点不动”“没反应”,而是打开控制台就直接看见红色报错行——这要求控制台不仅得唤出来,还得真实捕获到运行时错误,包括未捕获的异常、Promise拒绝、资源加载失败等关键信号。
确认控制台已激活并连通当前页面上下文
按F12打开开发者工具;若无反应,先去【设置 → 高级设置 → 开启开发者工具】并重启浏览器。
切换到Console标签页,在输入框中键入document.title后回车;若返回当前网页标题字符串(如“我的后台管理页”),说明控制台已成功挂载到目标页面且执行环境正常。【若返回undefined或报ReferenceError,说明页面尚未完成初始化,需等待DOMContentLoaded事件触发后再操作】。
手动触发一次JS错误验证捕获能力
在Console中输入throw new Error("test-catch");并回车。
立即学习“Java免费学习笔记(深入)”;
观察是否立即出现红色报错信息,包含错误类型、消息、文件名与行号(如Uncaught Error: test-catch at <anonymous>:1:7</anonymous>);若未显示,说明控制台未启用错误监听或被脚本屏蔽。
捕获三类关键JavaScript错误
第一步:监听全局未捕获异常
在Console中粘贴并执行以下代码:window.addEventListener("error", e => console.error("[全局错误]", e.message, e.filename, e.lineno));
第二步:捕获未处理的Promise拒绝
执行:window.addEventListener("unhandledrejection", e => console.error("[Promise拒绝]", e.reason));
这能抓到fetch().catch()漏处理、async函数内抛错未await等场景。
第三步:强制触发资源加载失败(验证网络错误捕获)
执行:const img = new Image(); img.src = "https://invalid.domain/404.png";
稍等1秒,检查Console是否打印出Failed to load resource类红字——这是资源层错误,同样属于JS运行环境的一部分。
绕过常见拦截手段确保错误可见
方法一:禁用可能屏蔽错误的日志覆盖脚本
某些用户脚本会重写console.error为function(){},导致报错被静默吞掉。执行:console.error = window.console.error.bind(window.console);
再试一次throw new Error("check"),确认红字重现。
方法二:关闭广告过滤对错误堆栈的干扰
进入【设置 → 高级 → 增强版通用广告过滤】→ 暂时关闭该开关;部分过滤规则会注入try{...}catch(e){}包裹逻辑,掩盖原始错误位置。
方法三:检查是否有window.onerror = null类代码主动卸载监听器
在Console中输入window.onerror,若返回null或undefined,说明有脚本清除了默认错误处理器;此时必须依赖第一步手动添加的addEventListener("error")才能捕获。


















