Chrome未修改代码突然提示Audit usage of navigator.userAgent如何解决
Audit usage of navigator.userAgent, navigator.appVersion, and navigator.platform
该提示是Chrome浏览器推行「用户代理字符串缩减计划」后推出的控制台提示,Chrome从109版本开始逐步裁剪navigator.userAgent等属性返回的信息,未适配的代码会触发该提示,部分强依赖UA字段解析的逻辑会直接报错导致页面加载失败,和你本地代码未修改无关,是Chrome自动更新触发的兼容性问题。
解决思路
- 先定位触发警告的代码位置:打开Chrome控制台的Sources面板,全局搜索
navigator.userAgent、navigator.appVersion、navigator.platform三个字段,确认是自有业务代码调用,还是第三方依赖/外置脚本调用。 - 若为第三方依赖触发:优先升级对应依赖到最新正式版本,目前主流的UA解析库、前端框架、统计/广告SDK都已经完成了Chrome新策略的适配;如果是不可控的第三方外置脚本导致,联系脚本提供方更新适配版本。
- 若为自有业务代码触发:
- 优先替换为特性检测方案:如果原逻辑是用UA判断浏览器能力,直接改为检测对应API是否存在,比如判断是否支持WebP格式可以用对应API检测,不要通过UA匹配浏览器类型/版本。
- 确实需要获取设备、浏览器信息的,改用Chrome官方推出的
User-Agent Client HintsAPI替代,示例用法:// 获取基础UA信息 console.log(navigator.userAgentData.brands); console.log(navigator.userAgentData.platform); // 获取高精度UA信息 navigator.userAgentData.getHighEntropyValues(["platformVersion", "uaFullVersion", "mobile"]) .then(info => console.log(info))
- 临时应急恢复方案:如果需要紧急恢复页面访问,可在Chrome地址栏输入
chrome://flags/#freeze-user-agent,将该选项设置为Disabled后重启浏览器即可临时恢复旧版UA逻辑,该方案仅适用于临时测试,不建议长期使用。
内容的提问来源于stack exchange,提问作者Extrange planet
相关产品推荐
相关产品推荐

