先别急着逐页肉眼检查。可以在浏览器控制台运行一段脚本,把当前页面里所有可见文本节点的长度、容器宽度和标题层级导出来,再与旧模板下的同类页面做结构对比。溢出通常表现为文本被裁切、横向滚动条出现或容器高度异常;缺项则表现为原本存在的标题、字段或模块在新模板中消失。即使没有后台权限,也能从前台页面抓取这些证据,但只能判断“当前渲染结果”,不能据此推断后台数据是否完整。
打开一个内容量中等、包含标题、正文、列表和图片的页面。在控制台执行一段只读脚本,遍历document.querySelectorAll('*'),记录每个元素的scrollWidth、clientWidth、scrollHeight和文本长度。把结果复制到表格里,按“文本长度除以容器宽度”排序,比值明显偏大的元素就是溢出嫌疑点。这个动作不需要登录后台,也不需要修改任何文件;它给出的是当前视口下的渲染证据。如果页面使用了懒加载或折叠内容,脚本抓不到未展开部分,这一步就不能当作全量结论。
溢出不一定是文字太长。常见原因有三类:容器设了固定高度、内边距或边框挤压了可用宽度、字体或行高在新模板中被改小或改大。判断时先看容器是否有overflow: hidden或固定height,再看文本节点是否被截断。一个可操作的动作是:临时在控制台把嫌疑容器的overflow改为visible,观察被隐藏的内容是否重新出现。如果出现,说明是裁切型溢出;如果不出现,可能是内容本身被后端截断或模板没有输出该字段。前一种可以改样式解决,后一种需要回到数据或模板逻辑,不能靠调CSS掩盖。
缺项比溢出更难发现,因为页面看起来正常,只是少了东西。选一个旧模板下保存过的页面快照或浏览器缓存版本,列出其中出现过的结构化字段:主标题、副标题、作者、日期、分类、标签、摘要、正文段落数、图片数、相关链接数。再对新模板下的同一页面做同样清单。逐项标记“有、无、位置变化”。如果某个字段在旧版存在、新版消失,先检查新模板是否输出了该字段,而不是先怀疑数据被删。没有后台权限时,这个比对只能说明前台输出差异,不能证明数据库里该字段为空。
假设你手上有三个页面:A页正文很长,B页有多个列表,C页只有短文本和图片。新模板上线后,A页出现横向滚动条,B页列表最后一项被裁切,C页看起来正常。这时不能直接说“全站溢出”。更合理的下一步是:先确认A、B两页的共同容器类名是否相同,再检查C页是否使用了不同模板或不同字段。如果共同容器相同,溢出可能集中在长文本和多列表场景;如果类名不同,问题可能只影响部分模板。这个例子中的数字和页面类型都是假设,用来演示比较方法,不代表任何真实项目结果。
在没有完整数据和权限的情况下,仍然可以执行三个最小动作:第一,用浏览器控制台导出当前页面的元素尺寸和文本长度;第二,用旧快照做字段清单比对;第三,把嫌疑容器临时改为可见,观察隐藏内容。这些动作能帮你区分“样式裁切”和“输出缺失”,也能帮你决定下一步是找前端改样式,还是找后端查字段。但它们不能推出:后台数据一定完整、所有页面都受影响、或者改完样式就不会再出现缺项。如果抓取量或请求量突然归零,也不能单独证明模板改对了,还可能是缓存、权限或抓取策略变化。把证据限定在“当前渲染结果”和“新旧输出差异”上,再决定是否扩大检查范围。