问题背景
在 QQ 浏览器最新版(内核 Chromium 123.0.6312.124)中,监听 window resize 事件时,发现在没有手动拖拽窗口的情况下,切换页面路由或操作 DOM 时,resize 事件被意外触发。
复现条件
- 浏览器:QQ 浏览器(21.1.8539.400 64位),Chromium 123 内核
- 操作系统:Windows
- 必要条件:开启 QQ 浏览器左侧边栏(关闭侧边栏则不复现)
- 触发操作:切换路由或进行 DOM 增删
排查过程
第一步:初步怀疑滚动条
resize 事件触发时,clientWidth 变化有时是 10px,接近滚动条宽度,初步怀疑是 DOM 切换导致滚动条出现/消失,挤压了页面宽度。
但有时变化只有 1px,且关闭侧边栏后问题完全消失,滚动条假说无法解释全部现象。
第二步:扩大观测范围
在 resize 回调中同时打印多个宽度指标:
