]> acesimba.cloud Git - StationBuilder.git/commit
fix(vue): 配置站点纯白页根因 - 模板表达式中的 window 被解析为组件作用域
authorCodeBuddy <codebuddy@local>
Wed, 23 Sep 2026 02:54:18 +0000 (10:54 +0800)
committerCodeBuddy <codebuddy@local>
Wed, 23 Sep 2026 02:54:18 +0000 (10:54 +0800)
commiteed72d26beb775ef18b109da175e0925dbcc068c
treeca892e748b9114afd6c01400b1796217eac262cb
parent20cdd4926407efd4da8cf59ba0fbc4b83fa552e5
fix(vue): 配置站点纯白页根因 - 模板表达式中的 window 被解析为组件作用域

根因: 用户拖动过 AI 浮动按钮, fabPos 存入 localStorage; 该值存在时 Home.vue 模板 :style 中的
window.innerHeight 被 Vue 编译器当作组件属性 _ctx.window (undefined) 解析, 读取 .innerHeight
抛 TypeError, 整棵 Home 渲染树崩溃 -> 纯白页。React 版 JSX 不做此转换故无此问题。

修复:
- Home.vue 新增 setup 绑定 const win = window, 模板该用 win.innerHeight (替代 window.innerHeight)
- 同步修正另外两处模板内联处理器中的 window.confirm / window.history.replaceState
  (Home.vue:546 删除领域点击, Home.vue:597 站点切换) 同样规避 _ctx.window 解析
- main.js 新增屏幕可见的错误浮层(window.onerror/unhandledrejection/Vue errorHandler),
  便于后续此类运行时错误直接显示到页面

脚本内(window.open/history.replaceState/document.* 等)的 window 仍是真实全局, 无需改动。
src-vue/Home.vue
src-vue/main.js