页面底部空出一大块,页脚要再滑一屏才看到,控制台里客服脚本返回 404,那个容器的高度还在。换个浏览器空白高度一样。第一次遇到会往复杂处想,其实漏掉的多是个小前提。
<div id="chat-root" style="height:0;overflow:hidden"></div>
<script async src="https://chat.example.com/widget.js"
onload="document.getElementById('chat-root').style.height='380px'"
onerror="document.getElementById('chat-root').remove()"></script>
客服容器高度由脚本内联样式写死,脚本没加载成功,占位 div 不会收起。主题又把容器放在正常文档流里,空白就留在页面上。这一点先确认清楚,后面就不用反复试。
「客服脚本留白」相关的日志我一般连着看前后五分钟,单看一条报错经常判断不出是哪一步失败。新版本先放一台机器上跑一天再全量,问题一般在这段时间暴露。
备份不是备了就行,恢复一次才算数,很多备份文件打开才发现是空的。
具体做法是,容器初始高度设为零,脚本加载成功后再展开;监听脚本的 onerror,失败时移除容器或加隐藏类;脚本用 async 加载,别让 404 阻塞后面的按钮。
改完照着核一遍,把脚本地址改成一个不存在的路径,页面底部不再留空白,页脚回到首屏下方一屏内。
