You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular 11应用突发zone.js报错t.getElementsByTagName is not a function求解

根因定位

报错来自你项目依赖的@sentry/* 6.x旧版本,computeStackTrace.js是Sentry用于堆栈追踪的核心文件。触发原因是近期各大主流浏览器版本更新后,MutationObserver回调返回的节点列表包含了非Element类型的节点(比如文本节点、注释节点),你使用的6.7.x版本Sentry未做节点类型校验,直接对所有节点调用getElementsByTagName方法,而非Element节点不存在该方法,因此抛出类型错误。
该问题和Angular版本无关,因此你升级Angular 12后报错依旧存在。

解决方案

临时紧急修复(无需升级依赖,改完立即生效)

在Sentry初始化配置中禁用MutationObserver相关监听:

Sentry.init({
  // 保留你的其他原有配置
  integrations: [
    new Sentry.Integrations.TryCatch({
      MutationObserver: false
    })
  ]
})

修改后重新构建发布即可快速恢复业务,不会影响Sentry其他错误上报能力。

永久修复

将所有@sentry/开头的依赖统一升级到6.x系列的最新稳定版(≥6.19.7),或者7.x的长期支持版本,Sentry官方已在后续版本中补充了节点类型校验逻辑,彻底修复了该问题。升级完成后重新构建发布即可。

验证方法

你可以在本地浏览器控制台中禁用Sentry相关脚本加载,刷新页面后如果报错消失,即可确认根因判断正确。

内容的提问来源于stack exchange,提问作者Yoh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 05:45:03