const box = document.querySelector('#store-map');
const timer = setTimeout(() => {
box.innerHTML = '<a href="https://maps.example.com/store">在地图中打开</a>';
}, 5000);
window.initMap = () => { clearTimeout(timer); renderMap(box); };
门店页地图区域一直灰着,没有报错弹窗,地址和营业时间也被一起藏掉,用户以为门店没开门。刷新三次也没恢复。先别急着动参数,把报错原文和时间点记下来,顺序反了容易白折腾。
原因不复杂,地图容器和地址信息放在同一个异步回调里渲染,脚本超时后回调不执行,整块内容都不出现。没有兜底文案,失败和加载中看起来一样。
「门店地图加载失败」排查到最后往往是很小的一处差异,前面那些复杂猜测可以先放一放。动手前把原文件复制一份带时间戳,出问题立刻换回去,比现场分析快得多。
处理上按这个顺序:先把地址、电话、营业时间用普通 HTML 渲染出来,不依赖地图脚本;地图容器给固定高度和占位文案,加载失败时替换成静态图或链接;脚本加载加超时,超过五秒就不再等。
改完只确认一件事:断网打开门店页,地址和营业时间仍然可见,地图位置显示一个可点的地图链接。
