Skip to content

fix: 修复日历组件空白渲染问题 - #4

Open
XRYua wants to merge 3 commits into
masterfrom
codex/fix-blank-calendar-component
Open

fix: 修复日历组件空白渲染问题#4
XRYua wants to merge 3 commits into
masterfrom
codex/fix-blank-calendar-component

Conversation

@XRYua

@XRYua XRYua commented Feb 24, 2026

Copy link
Copy Markdown
Owner

Motivation

  • 修复页面存在多个日历实例时组件只显示框架但没有内容的问题,根因为脚本使用全局 document.getElementById 和未隔离的全局执行上下文导致实例间互相干扰。

Description

  • 将日历客户端脚本包裹在立即执行函数 (IIFE) 中以隔离作用域并使用 document.currentScript.previousElementSibling 定位当前组件根节点。
  • 将所有全局 document.getElementById(...) 查询替换为基于当前根节点的 widgetRoot.querySelector(...),避免重复 id 时命中错误实例。
  • 增加关键节点存在性校验以在异常情况下提前退出并避免抛错,且将“点击组件外关闭面板”的判定改为基于当前实例根节点。
  • 修改文件: src/components/widget/Calendar.astro(局部 DOM 查询与脚本作用域调整)。

Testing

  • 运行 pnpm -s check(失败,原因为仓库中已存在的 src/layouts/Layout.astro 类型错误,与本次日历改动无关)。
  • 启动开发服务器使用 pnpm dev --host 0.0.0.0 --port 4321 成功运行并对外可访问。
  • 使用 Playwright 自动化脚本访问首页并截图以验证日历内容已正常渲染(截图生成成功,确认修复生效)。

Codex Task

@vercel

vercel Bot commented Feb 24, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
mizuki Ready Ready Preview, Comment Feb 24, 2026 4:29am

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant